我有一个带有2个文本字段的JFrame表单,它们都接受字符串作为输入,但是这些字符串之一需要以0000/0000格式输入(例如2008/0123),因此它必须有9个字符。检查字符串是否为0000/0000格式的代码应如何编写?谢谢

最佳答案

怎么样

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可以包含非阿拉伯数字。

关于java - 如何检查表格上的输入是否为0000/0000格式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16490713/

10-13 09:48