在Java中禁用按钮,直到填满所有字段

时间:2016-03-13 16:58:18

标签: java button netbeans

我是Java新手并开发一个小项目。我正在制作一个用户必须注册的程序。我的Tabbed Pane上有3个不同的标签。我希望能够停用 第一个窗格中的下一个按钮,使用户无法< strong>继续到窗格2,除非窗格1上的所有text字段都已已填充。我一直在网上搜索并找到了各种例子,但没有一个能在运行时工作。

我正在使用Netbeans。

  private void txtFirstNameActionPerformed(java.awt.event.ActionEvent evt) {                                             

    if(txtFirstName.getText().trim().length() > 0)

        btnNext1.setEnabled(true);
    else 
        btnNext1.setEnabled(false); 
  }

1 个答案:

答案 0 :(得分:1)

在您的窗格中创建所有文本字段的List

List<JTextField> list = new ArrayList<>();

将所有文本字段添加到该列表中。

然后,创建一个监听文本更改事件的通用DocumentListener,每次文本更新发生时,扫描所有文本字段以查看它们是否已全部填充:

DocumentListener listener = new DocumentListener() {
    @Override
    public void removeUpdate(DocumentEvent e) { changedUpdate(e); }
    @Override
    public void insertUpdate(DocumentEvent e) { changedUpdate(e); }

    @Override
    public void changedUpdate(DocumentEvent e) {
        boolean canEnable = true;
        for (JTextField tf : list) {
            if (tf.getText().isEmpty()) {
                canEnable = false;
            }
        }
        btnNext1.setEnabled(canEnable);
    }
};

并将listener添加到列表中的每个文本字段中:

for (JTextField tf : list) {
    tf.getDocument().addDocumentListener(piecesListener);
}