2016-03-13 37 views
0

我是Java新手,正在开发一个小型项目。我正在制作一个程序,其中用户必须注册本身。我的选项卡式窗格上有3个不同的选项卡。我希望能够禁用第一窗格中的下一个按钮使它不可能为用户继续到窗格2除非所有的窗格1 text领域得到了充满。我一直在网上搜索,发现了各种例子,但没有一个会在运行时间工作。在Java中禁用按钮,直到填满所有字段

我正在使用Netbeans。

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

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

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

回答

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); 
} 
相关问题