Java 如何持续验证JTextField?

Java 如何持续验证JTextField?,java,swing,Java,Swing,我有一个Java应用程序,它有一个带有4个文本字段和一个按钮的表单。我想知道是否有一种方法可以让程序使用.isEmpty()不断地检查字段,以查看是否有输入,一旦所有字段中都有输入,该按钮就可以单击?添加DocumentListener JButton button = new JButton("Button"); JTextField field = new JTextField(); field.getDocument().addDocumen

我有一个Java应用程序,它有一个带有4个文本字段和一个按钮的表单。我想知道是否有一种方法可以让程序使用
.isEmpty()
不断地检查字段,以查看是否有输入,一旦所有字段中都有输入,该按钮就可以单击?

添加DocumentListener

        JButton button = new JButton("Button");
        JTextField field = new JTextField();
        field.getDocument().addDocumentListener(new DocumentListener(){

            @Override
            public void changedUpdate(DocumentEvent arg0) {
                if(field.getText().isEmpty()){
                    button.setEnabled(true);
                }
            }

            @Override
            public void insertUpdate(DocumentEvent arg0) {
                if(field.getText().isEmpty()){
                    button.setEnabled(true);
                }
            }

            @Override
            public void removeUpdate(DocumentEvent arg0) {
                if(field.getText().isEmpty()){
                    button.setEnabled(true);
                }
            }

        });

添加一个DocumentListener

        JButton button = new JButton("Button");
        JTextField field = new JTextField();
        field.getDocument().addDocumentListener(new DocumentListener(){

            @Override
            public void changedUpdate(DocumentEvent arg0) {
                if(field.getText().isEmpty()){
                    button.setEnabled(true);
                }
            }

            @Override
            public void insertUpdate(DocumentEvent arg0) {
                if(field.getText().isEmpty()){
                    button.setEnabled(true);
                }
            }

            @Override
            public void removeUpdate(DocumentEvent arg0) {
                if(field.getText().isEmpty()){
                    button.setEnabled(true);
                }
            }

        });

您可以实现一个
DocumentListener
,并检查文本字段是否为空。您的建议是使用轮询方法。您需要一种事件驱动的方法。您可以实现一个
DocumentListener
,并检查您的文本字段是否为空。您的建议是使用轮询方法。您需要事件驱动的方法。因为
String
s是对象,所以使用
String::equals
而不是
=
。或者更好地使用
String::isEmpty
@flwn我正要说同样的话,我还没喝咖啡呢。感谢您指出这一点。有没有办法统一这些更新方法以更好地保持干燥?DocumentListener是一个接口,所以必须重写所有这些方法。我不太清楚你说的@AustinSchäfers是什么意思,因为
String
s是使用
String::equals
而不是
=
的对象。或者更好地使用
String::isEmpty
@flwn我正要说同样的话,我还没喝咖啡呢。感谢您指出这一点。有没有办法统一这些更新方法以更好地保持干燥?DocumentListener是一个接口,所以必须重写所有这些方法。我不太清楚你说的“奥斯汀舍弗”是什么意思