DocumentListeners
とその他のアクションリスナーについては、読んでいますが、JButton
はテキストフィールドが空の場合はsetEnabled(false)
に戻ることができません。これは、キャレットの位置と関係があるか、テキストフィールドのいずれかが空である場合に元の状態に戻す適切な方法です(setEnabled(false)
)。JTextFieldのドキュメントが空の場合にJButtonの状態を指定する方法
ここまではこれまでに書いたことがあります。
public class home extends javax.swing.JPanel {
public home() {
JPasswordField currentPasswordJPasswordField;
JPasswordField newPasswordJPasswordField;
JPasswordField reTypeNewPasswordJPasswordField;
currentPasswordJPasswordField.getDocument().addDocumentListener(new textFieldListener(saveNewPasswordButton));
newPasswordJPasswordField.getDocument().addDocumentListener(new textFieldListener(saveNewPasswordButton));
reTypeNewPasswordJPasswordField.getDocument().addDocumentListener(new textFieldListener(saveNewPasswordButton));
}
public static class textFieldListener implements DocumentListener {
JButton btn;
public textFieldListener(JButton button) {
btn = button;
}
@Override
public void insertUpdate(DocumentEvent e) {
btn.setEnabled(true);
}
@Override
public void removeUpdate(DocumentEvent e) {
btn.setEnabled(true);
}
@Override
public void changedUpdate(DocumentEvent e) {
btn.setEnabled(true);
}
}
}
テキストフィールドに何かを入力すると、期待どおりに保存ボタンが有効になります。 しかし、バックスペースを押してすべてのテキストをクリアすると、保存ボタンはsetEnabled(false)
に戻りません。
私はすべての応答を感謝したいと思います。私はちょうどこれを学び始めた。別の.javaファイルにアクションリスナーを置くことができるかどうかを知りたい。もしそうなら、どのように私のメインクラスにリスナーを適用することができます。
ありがとうございました。
にそれを任せる[MCVE]または[ショート、自己完結型、正しい例](http://www.sscce.org/)。 –
@AndrewThompson私はそれに留意します。できるだけ簡潔に投稿を編集しました。私はこれが可能な限り短くて簡潔であると思います。ありがとうございました。 – p3ace
「最小」よりもMCVEの方が多く、SSCCEでは「短く」よりも多いことに気付くかもしれません。私があなたに会うためにコードを投稿することを提案しているのは、他の部分です。私たちはコンパイル、実行、そして問題を見てください。* –