ユーザーが新しいアカウントを作成できる宅配便プログラムを作成しています。テキストフィールドに入力するまでユーザーが押すことができない次のボタンが欲しいのですが。
したがって、空白の名前フィールドと名前フィールドは、次のボタンを押すことができないことを意味しますが、フィールドが入力されている場合は、次のボタンを押すことができます
次のようなKeyListenerをフィールドに追加します。
nameField.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
super.keyReleased(e);
if(nameField.getText().length() > 0 && surNameField.getText().length() > 0)
nextButton.setEnabled(true);
else
nextButton.setEnabled(false);
}
});
これにより、フィールドでキーが押されるたびに、2つのフィールドが空でないかどうかがチェックされます。条件が真の場合、次のボタンが有効になります。
簡単に言うと、次のようなものを試してください。
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);
}
});
actionPerformedメソッドで、actionEventをチェックするたびに、必須フィールドが入力されているかどうかを確認します。入力されている場合は、ボタンsetEnabled(true)を設定します。コードを見せていただければ、おそらくもっと良い答えが得られるでしょう。