Désactiver un bouton

yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 - 29 juil. 2014 à 16:30
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 - 1 août 2014 à 16:59
Bonjour à tous, :)
Ma question est assez bête, mais je n'arrive pas à trouver de réponse.

J'ai un bouton :
JButton bouton = new JButton("Désactiver");
bouton.addMouseListener(new MouseAdapter() {
	@Override
	public void mouseClicked(MouseEvent e) {
		//differentes action
	}
});


Je voudrais tout bêtement pouvoir activer/désactiver ce bouton, désactiver voulant dire ne pas pouvoir cliquer dessus.

J'ai essayé
bouton.setEnabled(false);
. Mon bouton devient grisé, mais si je clique dessus, les actions se font quand même.

Est-il possible de désactiver le clic de mon bouton en évitant d'ajouter un test supplémentaire ?

Merci d'avance :)

7 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
29 juil. 2014 à 16:41
Hello,

Tu peux débrancher le listener:
bouton.addMouseListener(null);

0
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 3
29 juil. 2014 à 16:47
Mais dans ce cas, pour réactiver le bouton, je doit recréer entièrement le listener (avec toutes les actions à faire), c'est ça ?
Pas terrible non plus ...
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
29 juil. 2014 à 16:51
Bah, tu le crée une fois pour toute, en final et membre de ta classe.
Ensuite, tu auras juste à faire un
bouton.addMouseListener(monListener);

0
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 3
29 juil. 2014 à 17:22
Pour avoir programmé dans plusieurs langages, je trouve ce comportement hallucinant.

J'ai l'impression de sortir la grosse artillerie pour planter un petit clou !...

Pourquoi le setEnabled empêche l'accès à un JTextField et pas à un JButton ?!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
Modifié par BunoCS le 29/07/2014 à 17:37
Normalement, setEnabled() marche tout pareil.
Es-tu sûr de bien le désactiver?

@+
Buno, Modo CS-CCM
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
The urgent is done, the impossible is underway. For miracles, envisage a time ...
0
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 3
30 juil. 2014 à 08:48
Je fais un
setEnabled(false);
oui. Et mon bouton devient effectivement grisé !
Y a-t-il quelque chose en plus à faire ?
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
30 juil. 2014 à 10:29
Non. Tu passes vraiment dans ton listener une fois le bouton désactivé?
0
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 3
30 juil. 2014 à 12:02
Oui je repasse bien dans le listener à chaque fois que je clique sur le bouton, qu'il soit activé ou désactivé.
0
yoanpg Messages postés 156 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 20 janvier 2024 3
1 août 2014 à 16:59
Bon, ça n'inspire personne visiblement :(

Je crois ne pas être le seul car j'ai vu plusieurs sujet concernant ce problème sur internet. Mais je pensais que c'était spécifique à Java. Mais si tu me dis que "setEnabled() marche tout pareil", c'est très étonnant !!
0
Rejoignez-nous