TUTORIEL DE CRÉATION DE JMENU + LIENS

cs_raff Messages postés 182 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 5 janvier 2004 - 24 avril 2003 à 18:50
philllou Messages postés 1 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 janvier 2005 - 14 janv. 2005 à 23:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/15589-tutoriel-de-creation-de-jmenu-liens

philllou Messages postés 1 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 janvier 2005
14 janv. 2005 à 23:32
Merci pour ton code et bonne continuation
rschwartz Messages postés 2 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 10 septembre 2007
26 sept. 2003 à 15:43
cavoktchi
cs_raff Messages postés 182 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 5 janvier 2004 3
23 mai 2003 à 18:21
je n'ai jamais dit que ce n'était pas possible....ce que je dis, c'est que c'est pas élégant, dans ce genre de situation, et que finalement, tu sauves trois ou quatre lignes de codes pour finalement te retrouver avec des objets accessibles avec deux lignes de get this get that.....et puis le "ça marche" est très très loin d'être une bonne raison dans la plupart des cas.
cs_Skyzoboy Messages postés 8 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 4 mai 2006
23 mai 2003 à 10:46
DSL pour le flood ...

rectification :

((JMenu)<nomduJMenu>.getMenuComponent()).getItem().setEnabled(false)

@+
cs_Skyzoboy Messages postés 8 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 4 mai 2006
23 mai 2003 à 10:44
Si l'on fait :
<nomduJMenu>.getItem().setEnabled(false) --> ça marche nikel !

Pire ! Pour les sous-menus :

(<nomduJMenu>.getMenuComponent()).getItem().setEnabled(false) --> ça marche aussi !

Donc je ne vois pas où est le problème ??? (tjs pas besoin de déclarer les variables, par contre les JMenu doivent l'être pour les listeners ....)

@+
cs_Skyzoboy Messages postés 8 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 4 mai 2006
23 mai 2003 à 10:43
Si l'on fait :
<nomduJMenu>.getItem().setEnabled(false) --> ça marche nikel !

Pire ! Pour les sous-menus :

(<nomduJMenu>.getMenuComponent()).getItem().setEnabled(false) --> ça marche aussi !

Donc je ne vois pas où est le problème ??? (tjs pas besoin de déclarer les variables, par contre les JMenu doivent l'être pour les listeners ....)

@+
cs_raff Messages postés 182 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 5 janvier 2004 3
26 avril 2003 à 01:09
Je ne sais pas si on peut vraiment appeler ça un algorithme...mais enfin, je crois vraiment que cette idée de ne pas déclarer les variables pour ce genre d'objet (ou finalement de ne pas garder de référence à ceux-ci) soit une erreur. Au pire, tu peux toujours utiliser un tableau (JMenuItem[] mes_items) si tu as beaucoup d'items et que tu veux pas te perdre. Mais enfin je ne vois pas ce qu'il y a de si compliqué avec les menus, c'est pas mal moins encombrant que tout ce qu'il faut faire pour bien (je dis "bien") agencer un interface (avec les différents layouts)...
cs_BlackWood Messages postés 37 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 4 octobre 2006 2
25 avril 2003 à 08:54
>> Raff : C'est vrai, un des probleme pour cet algo est le setEnabled(false) par exemple mais je l'avais remarqué et en fait j'ai utilisé une variable pour les menus que j'ai besoins de manipulé de cet façon (qui sont finalement assez rares). Les autres sont restés ce "menuItem".
Alors finalement, y a-t-il un algo parfait pour les menus ? Sans déclarer une vingtaine de variables inutiles ou sans perdre ses avantages en n'en déclarant qu'une seule ?
cs_raff Messages postés 182 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 5 janvier 2004 3
24 avril 2003 à 18:50
bon je suis d'accord, tu n'as pas eu besoin de déclarer une variable pour chaque JMenuItem.....mais finalement, il faut tout de même que tu ajoutes chacun un à la fois, en précisant le texte et les propriétés, etc. Je ne trouves pas qu'il s'agit d'un avantage, mais plutôt d'un désavantage, car les objets sont gardés en mémoire même si aucune variable ne réfère directement à ceux-ci (un menu n'est qu'un pointeur, ce qui est gardé en mémoire, ce sont les attributs, texte, mnémonic, etc.). Et puis cela devient plus complexe de modifier les attributs, par exemple si tu veux faire un setEnable(false) sur un JMenuItem en particulier. Tu est alors obligé de faire un test sur chacun des menus pour trouver l'item en question....Mieux vaut avoir une référence à chaque objet, c'est plus clair et plus pratique.
Rejoignez-nous