Java 如何在jtextbox上实时验证正则表达式?

Java 如何在jtextbox上实时验证正则表达式?,java,regex,swing,netbeans-8,keylistener,Java,Regex,Swing,Netbeans 8,Keylistener,我正在尝试使用以下正则表达式验证/筛选我的jtextbox ww: ^([A-za-z]+[\s]{1}[A-za-z]+)|([A-za-z]+)$ 我想用一个空格过滤两个名字 尝试使用keytyped和keyreased,但它不起作用(不允许我在文本框中写入任何内容),并且e.consume()不起作用 boolean StrCheck(字符串Exp,字符串str){ 返回模式。匹配项(Exp,str); } @凌驾 public void keyTyped(KeyEvent e){ if

我正在尝试使用以下正则表达式验证/筛选我的jtextbox ww:

^([A-za-z]+[\s]{1}[A-za-z]+)|([A-za-z]+)$
我想用一个空格过滤两个名字

尝试使用
keytyped
keyreased
,但它不起作用(不允许我在文本框中写入任何内容),并且
e.consume()
不起作用

boolean StrCheck(字符串Exp,字符串str){
返回模式。匹配项(Exp,str);
}
@凌驾
public void keyTyped(KeyEvent e){
if(例如getSource()==jTextField){
字符串regexp=“^([A-za-z]+[\s]{1}[A-za-z]+)|([A-za-z]+)$”;
if(jTextField.getText().length()==25){
e、 消费();
}if(StrCheck(regexp,jTextField.getText()){
}否则{
e、 消费();
}

我一直在搜索,但我得到的唯一可能的答案是创建一个Documentlistene,但找不到任何示例,也找不到如何实际操作并使其工作。

这两个
KeylListener
,这两个
DocumentListener
都不起作用。在大多数情况下,您需要先使用一个这对你来说还不够。如果不够,这就是你要找的。

对于和,谢谢你的帮助,我尝试了使用PatternFilter,它可以工作只是不要让我添加空白,也许我的正则表达式有问题,我将使用其他jtextbox中的格式化文本字段,谢谢。