Я пытаюсь проверить / отфильтровать свой jtextbox с этим регулярным выражением:
^(([A-za-z]+[\s]{1}[A-za-z]+)|([A-Za-z]+))$
Я хочу отфильтровать два имени с одним пробелом.
Попытка с использованием keytyped
и keyreleased
, но он просто не работает (не позволяет мне что-либо писать в текстовом поле), а e.consume()
не работает.
boolean StrCheck(String Exp,String str) {
return Pattern.matches(Exp,str);
}
@Override
public void keyTyped(KeyEvent e) {
if (e.getSource() == jTextField) {
String regexp = "^(([A-za-z]+[\s]{1}[A-za-z]+)|([A-Za-z]+))$";
if (jTextField.getText().length() == 25) {
e.consume();
} if (StrCheck(regexp,jTextField.getText())){
}else {
e.consume();
}
Я искал, но единственный возможный ответ, который я получил, - это создать Documentlistene, НО не могу найти ни одного примера или как на самом деле это сделать и заставить его работать.