-1

我有一个 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]+\\.?");
    }

}

有什么办法可以防止这种情况发生吗?

4

1 回答 1

1

如果输入与您的“正好 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;
        }
}
于 2016-01-08T13:59:04.090 回答