16 boutons a "ecouter" existe-il une méthode assez simple?

Résolu
Jadorelinfo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Ayant 16 boutons a ecouter, au moyen de listener, suis-je obligé de creer 16 classes internes, ce qui fait vraiment beaucoup ou existe-il un moyen plus simple??

Merçi.
A voir également:

4 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Cela dépend de ton problème. Si les boutons font plus ou moins la même chose tu peux faire une seule classe pour plusieurs boutons, tu spécifieras leur comportement en donnant différents paramètres au constructeur, les objets seront différents mais la classe commune.

Remarque : rien n'oblige que la classe soit interne, tu peux très bien faire une classe "normale" et si tu as des dépendances tu lui passes aussi en paramètres.
0
Jadorelinfo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   1
 
c'est 16 boutons de calculatrices : 0 ==>9 et +, -, * , / , C , .
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Alors déjà, les boutons de 0 à 9 tu peux les mettre dans la même classe, il suffira de préciser quelle valeur tu mets. Exemple :

button3.addActionListener(new AddDigitListener(3));

Les 4 opérateurs aussi, après tout ils font quasiment la même chose.

Reste alors "." et "C" pour lesquels tu feras deux classes distinctes.

Ça ne fait donc plus que 4 classes, au lieu de 16...
La confiance n'exclut pas le contrôle
0
Jadorelinfo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   1
 
quand je fais :
button3.addActionListener(new AddDigitListener(3));

eclipse me dit que le constructeur n'est pas défini (boutonlistener dans Fenetre), tout est en rouge???
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
C'était un exemple. La classe AddDigitListener n'existe pas, il faut la créer, ainsi que son constructeur qui prendrait un entier pour indiquer le chiffre correspondant...
0