JMenu et JMenuItem [Résolu/Fermé]

Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 6 nov. 2006 à 14:32 - Dernière réponse : lafolle24320 406 Messages postés samedi 26 mars 2005Date d'inscription 29 juin 2009 Dernière intervention
- 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
Twinuts 5273 Messages postés dimanche 4 mai 2003Date d'inscription 21 août 2018 Dernière intervention - 6 nov. 2006 à 14:59
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

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 6 nov. 2006 à 14:43
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.
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 6 nov. 2006 à 15:33
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 ...
Twinuts 5273 Messages postés dimanche 4 mai 2003Date d'inscription 21 août 2018 Dernière intervention - 6 nov. 2006 à 15:38
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
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 6 nov. 2006 à 15:50
0
Merci
Salut:

Le code est maintenant bien allégé.
lafolle24320 406 Messages postés samedi 26 mars 2005Date d'inscription 29 juin 2009 Dernière intervention - 6 nov. 2006 à 16:14
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
Twinuts 5273 Messages postés dimanche 4 mai 2003Date d'inscription 21 août 2018 Dernière intervention - 6 nov. 2006 à 16:38
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
lafolle24320 406 Messages postés samedi 26 mars 2005Date d'inscription 29 juin 2009 Dernière intervention - 6 nov. 2006 à 16:47
0
Merci
Ok autant pour moi j'étais persuadée de l'inverse

dsl
bonne prog


lafolle

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.