我有一个带有2个文本字段的JFrame表单,都接受字符串作为输入,但其中一个字符串需要以0000/0000格式输入(例如2008/0123),所以它需要有9个字符。如何编写检查字符串是否为0000/0000格式的代码?感谢
答案 0 :(得分:3)
怎么样
String text = txtField.getText();
boolean valid = text.matches("\\d{4}/\\d{4}");
您可以将其与DocumentListener
结合使用,以便为您的字段提供红色背景(如果未验证)。
{
...
txtField.getDocument().addDocumentListener(new MyDocumentListener(txtField));
...
}
class MyDocumentListener implements DocumentListener {
private JTextField txtField;
public MyDocumentListener(JTextField field) {
txtField = field;
}
public void changedUpdate(DocumentEvent e) {
boolean valid = txtField.getText().matches("\\d{4}/\\d{4}");
txtField.setBackground(valid ? Color.WHITE : Color.RED);
}
public void insertUpdate(DocumentEvent e) { changedUpdate(e); }
public void removeUpdate(DocumentEvent e) { changedUpdate(e); }
}
注意:对于i18n兼容性,您可能希望使用[0-9]{4}/[0-9]{4}
而不是\d
类,因为\d
可以包含非阿拉伯数字。< / p>