Re: Зробити так щоб вводити лише англійські символи для назв колонок.
В головному класі :
((AbstractDocument) textColumnName.getDocument()).setDocumentFilter(new latynycaFilter (textColumnName ) ) ;
public class latynycaFilter extends DocumentFilter{
JTextField textColumnName ;
Pattern p ;
latynycaFilter( JTextField textColumnName){ // конструктор
this.textColumnName = textColumnName;
p = Pattern.compile("[^a-zA-Z]");
}
В медоді replace намагаюсь за допомогою оператора if else вивести на консоль значення m.matches()) , але виходить навпаки ніж я очікував . Коли вводю англійські символи то - false, а коли інші - true .
Плюс як примусити в текстове поле заносити символи які відповідають ("[^a-zA-Z]") ? Я намагався textColumnName.setText(text)) , але отримав StackOverflowError .
@Override
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException{
Matcher m = p.matcher(text);
if( m.matches()){
System.out.println(" m.matches() - true -"+ m.matches());
}else{
// textColumnName.setText(text));// якщо розкоментувати то буде - StackOverflowError
System.out.println(" m.matches() - false " + m.matches());
}
}