2012-10-27 48 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

相關問題