所以我正在尝试为一个按钮创建一个验证器,该按钮必须检查 3 个文本字段,其中一个是 IP 地址。所以基本上用户必须自己输入完整的 IP 地址。
所以我遇到了一个不需要的语法错误,我确信这是由于文本字段引起的。
我尝试将文本字段转换为字符串,然后进行验证,但这似乎使情况变得更糟
private class theValidator implements ActionListener{
public void actionPerformed(ActionEvent e)
{
String textIP = txfIP.getText();
txfIP.setInputVerifier(new InputVerifier() {
Pattern pat = Pattern.compile("\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\."+
"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\." +
"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\." +
"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b");
public boolean shouldYieldFocus(JComponent input) {
boolean inputOK = verify(input);
if (inputOK) {
return true;
}
else {
Toolkit.getDefaultToolkit().beep();
return false;
}
}
public boolean verify(JComponent input) {
JTextField field = (JTextField) input;
Matcher m = pat.matcher(field.getText());
return m.matches();
}
});
}
}