Donc je viens de commencer à lire sur DocumentListeners
et d'autres écouteurs d'action aujourd'hui mais je ne peux pas obtenir mon JButton
pour revenir à l'état setEnabled(false)
lorsque l'un des champs de texte est vide. Est-ce que cela a quelque chose à voir avec la position du curseur ou existe-t-il un moyen approprié de revenir à l'état original setEnabled(false)
lorsque l'un des champs de texte est vide.Comment spécifier l'état JButton si le document de JTextField est vide
Voici ce que j'ai écrit jusqu'à maintenant.
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);
}
}
}
Lorsque je tape quelque chose sur le champ de texte, il active le bouton de sauvegarde comme prévu. Mais lorsque j'appuie sur le retour arrière pour effacer tout le texte, le bouton de sauvegarde ne retourne pas àsetEnabled(false)
.
J'apprécierais toute réponse. Je viens de commencer à apprendre cela. Je veux aussi savoir si je peux placer les écouteurs d'action dans un fichier .java séparé. Si oui, comment puis-je appliquer les auditeurs à ma classe principale.
Merci.
Pour une meilleure aide plus tôt, un poster [MCVE] ou [Short, Self Contained, Correct Example] (http://www.sscce.org/). –
@AndrewThompson Je vais prendre note de cela. J'ai édité mon post aussi concis que possible. Je suppose que c'est le plus court et le plus concis possible. Je vous remercie. – p3ace
Vous remarquerez peut-être qu'il y a plus de MCVE que de 'Minimal', plus de SSCCE que de 'Short'. Ce sont les autres parties que je vous suggère d'afficher le code postal. Code postal, nous pouvons compiler, exécuter et * voir le problème. * –