繁体   English   中英

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

[英]Disable button in Java until all fields filled

我是Java的新手,正在开发一个小项目。 我正在制作一个用户必须注册自己的程序。 我的选项卡式窗格中有3个不同的选项卡。 我希望能够禁用 第一窗格使它不可能为用户 继续窗格2,除非所有的下一个按钮 text上的窗格1场已经排满 我一直在网上搜索,发现了各种示例,但是它们都无法在运行时正常工作。

我正在使用Netbeans。

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

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

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

创建窗格上所有文本字段的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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM