JMenu et JMenuItem [Résolu/Fermé]

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
- - Dernière réponse : lafolle24320
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Dernière intervention
29 juin 2009
- 6 nov. 2006 à 16:47
Salut:

Je suis en train de créer une application avec Swing.
Pour alléger mon code j'ai constaté que pour créer un JMenu ou un JMenuItem on utilise les mêmes méthodes :
1. setToolTip
2. setIcon
3. setMnemonic
4. setText
5. ...

Donc, j'ai voulu écrire une SEULE méthode pour se charger de tout ce travail (JMenu et JMenuItem ensemble).

Ceci est une version simplifiée de ma méthode.

private void myGenericMethod (Object object, String label, char c) {
    if (object instanceof JMenu) {
       JMenu menu = (JMenu)object;
       menu.setText (label);
       menu.setMnemonic (c);
       // ...
    }
    else if (object instanceof JMenuItem) {
       JMenuItem menuItem = (JMenuItem)object;
       menuItem.setText (label);
      

menuItem.setMnemonic (c);








       // ...
    }

}




J'ai remarqué que je suis en train de réécrire le même code.
Existe il une autre possibilité plus élégante?

Et Merci ...
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
5313
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
14 janvier 2019
99
3
Merci
Salut,

 tu peux faire ça :
   
private void myGenericMethod (JMenuItem menu, String label, char c) {
    menu.setText (label);
    menu.setMnemonic (c);
}

à l'utilisation :

JMenu menu = new JMenu();
myGenericMethod (menu, "Test 1", '1');
JMenuItem menuItem = new JMenuItem();
t.myGenericMethod (menuItem, "Test 2", '2');

en effet JMenu hérite de JMenuItem ...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Twinuts
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
38
0
Merci
Salut:

Comme il a était précisé la haut, cette solution est équivalente à définir deux méthodes indépendantes dont chacune prend comme paramètre (au lieu d'un Object) respectivement un JMenu et JMenuItem.
Commenter la réponse de Ombitious_Developper
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
38
0
Merci
Salut:

J'ai apprécié cette phrase : "en effet JMenu hérite de JMenuItem ...". Car elle résoud tout le problème.

Que veux tu dire par t (car je ne la voit pas déclarée):

t.myGenericMethod (menuItem, "Test 2", '2');

Merci ...
Commenter la réponse de Ombitious_Developper
Messages postés
5313
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
14 janvier 2019
99
0
Merci
Salut,

rien c'est une variable que j'au utiliser pour le test :P tu paux la zapper donc c'est :
JMenu menu = new JMenu();
myGenericMethod (menu, "Test 1", '1');
JMenuItem menuItem = new JMenuItem();
myGenericMethod (menuItem, "Test 2", '2');

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Commenter la réponse de Twinuts
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
38
0
Merci
Salut:

Le code est maintenant bien allégé.
Commenter la réponse de Ombitious_Developper
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Dernière intervention
29 juin 2009
2
0
Merci
Bonjour,
JMenu hérite de JMenuItem...
moi j'aurais fait l'inverse car c'est JmenuItem qui va avoir des attributs en + par rapport à JMenu enfin je crois.
ce n'est que mon point de vue

Bonne prog


lafolle
Commenter la réponse de lafolle24320
Messages postés
5313
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
14 janvier 2019
99
0
Merci
Salut,

pour la culture voici les entetes des classes JMenu et JMenuItem dispo avec les sources de java

public class JMenu extends JMenuItem implements Accessible,MenuElement
public class JMenuItem extends AbstractButton implements Accessible,MenuElement

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Commenter la réponse de Twinuts
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Dernière intervention
29 juin 2009
2
0
Merci
Ok autant pour moi j'étais persuadée de l'inverse

dsl
bonne prog


lafolle
Commenter la réponse de lafolle24320

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.