我的InputVerifier在我的应用中窃取焦点时遇到问题。当我点击使用此验证器的文本字段时,我无法在其他任何地方点击,除非我用4位数字填充该字段(验证器在这里是为了防止输入数字以外的任何内容,并且必须有4个)
这是我的代码:
public class NumberVerifier extends InputVerifier {
public boolean verify(JComponent input) {
String text = ((JTextField) input).getText();
if((text.length()==4) && isNumeric(text)){
return true;
}else{
return false;
}
}
public static boolean isNumeric(String str)
{
return str.matches("[0-9]+\\.?");
}
}
有没有办法防止这种情况发生?
答案 0 :(得分:0)
如果输入与您的正好4个数字相匹配,则您可以简单地接受该输入为有效数字' 或如果为空(长度为0)。
public boolean verify(JComponent input) {
String text = ((JTextField) input).getText();
// if text is 4 digits or it's empty
if(((text.length()==4) && isNumeric(text)) || (text.length()==0)){
return true;
}else{
return false;
}
}