2012-10-27 45 views
2

我正在制作一个用户可以创建新帐户的快递程序。 我想有一个下一个按钮,用户不能按下,直到文本字段已被填充。在填写必填字段之前禁用JButton所需的建议 - Java

所以一个空白名称字段和姓氏字段将意味着下一个按钮不能按下,但如果字段已填写,可以按下一个按钮

回答

4

这样添加的KeyListener到您的领域(未测试):

nameField.addKeyListener(new KeyAdapter() { 
     public void keyReleased(KeyEvent e) { 
      super.keyReleased(e); 
      if(nameField.getText().length() > 0 && surNameField.getText().length() > 0) 
       nextButton.setEnabeld(true); 
      else 
       nextButton.setEnabled(false); 
     } 
    }); 

这将检查这两个字段是否为空,每次在该字段中按下一个键。如果条件为真,则将启用下一个按钮。

+0

这一个工作非常感谢你! – fez

+0

没问题。如果用户再次删除文本,您也不想禁用该按钮。已经更新了答案以反映这一点。 – CleanUp

+0

它不适用于nameField.getText()。length()> 0 || surNameField.getText()。length()> 0 –

0

在您的actionPerformed方法中,对于每个actionEvent检查,检查是否填写了必填字段,如果是,请设置您的按钮setEnabled(true)。如果您可以向我们展示您的代码,也许可以提供更好的答案。

0

简单来说,尝试一下。

String text = textField.getText(); 
if (text.length()>0) 
    button.setEnabled(true); 
... 

如果你想拥有的飞行,然后它的一个比较复杂的按钮进行启用

编辑:

复杂的案件:

Document textFieldDoc = myTextField.getDocument(); 
textFieldDoc.addDocumentListener(new DocumentListener() { 
void changedUpdate(DocumentEvent e) { 
    updated(e); 
} 
void insertUpdate(DocumentEvent e) { 
    updated(e); 
} 
void removeUpdate(DocumentEvent e) { 
    updated(e); 
} 
private void updated(DocumentEvent e) { 
    boolean enable = e.getDocument().getLength() > 0; 
    myButton.setEnabled(enable); 
} 
}); 
+0

这正是我想要做的,只要用户填写字段 – fez

+0

就启用按钮在这种情况下,您必须添加一个文档侦听器,只要用户修改了文本字段,然后在更新中功能,你可以setEnabled按钮 – LivingThing

相关问题