我们如何测试 JFormattedTextField 是否为空?

How do we test if JFormattedTextField is empty?

我有一个 JFormattedTextField 供用户输入 phone 号码。我的 phone 号码采用以下格式:+### ###-###-###。我想在将 phone 号码保存到数据库之前检查空字符串。问题是如果该字段为空,我无法 check/determine。当我打印 field.getText().length() 时,它输出 16,这意味着字段中已经有一些字符。如何检查用户是否输入了一些字符?

下面是我的代码:

public class JTextFiledDemo {

private JFrame frame;

JTextFiledDemo() throws ParseException {
    frame = new JFrame();
    frame.setVisible(true);
    frame.setSize(300, 300);
    frame.setLayout(new GridLayout(4, 1));
    frame.setLocationRelativeTo(null);
    iniGui();
}

private void iniGui() throws ParseException {

    JButton login = new JButton("Test");
    JFormattedTextField phone = new JFormattedTextField(new MaskFormatter(
            "+### ###-###-###"));

    frame.add(phone);
    frame.add(login);
    frame.pack();

    login.addActionListener((ActionEvent) -> {

        JOptionPane.showMessageDialog(frame, "The length of input is :"
                + phone.getText().length());

    });

}

public static void main(String[] args) {

    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            try {
                JTextFiledDemo tf = new JTextFiledDemo();
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });
      }

   }

您可以使用isEditValid()方法查看内容

 final boolean editValid = phone.isEditValid();
 showMessageDialog(frame, "The length of input is :" + phone.getText().length() + ".  It is " + (editValid ? "" : "not ") + "valid!");