Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
993 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Gestion d'une variable de classe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gestion d'une variable de classe

n°556537
le20k
un ordinateur? pour koi faire?
Posté le 01-11-2003 à 23:17:34  profilanswer
 

Bonsoir !
 
J'ai une appli avec un menu qui dispose différents sous-menus.
J'aimerai, quand on clique sur un sous-menu, que la variable "choix" prenne la valeur selon le sous-menu choisi.
( tout le monde suit là ?)
Je n'arrive pas à gérer le passage de variables -> quand j'ai l'actionPerformed qui est activée, je n'arrive pas à changer la variable "choix" qui est globale.  :pt1cable:  
 
[ mode code over-simplifié on ]
 
class MaClasse {
    String choix; //variable globale
 
    JMenuItem menuChoix1 = new JMenuItem("Choix1" );
    menuChoix1.addActionListener( new EcouteurChoixMenu("choix1" ) );
 
   // on peut en mettre plusieurs comme ça :  
   JMenuItem menuChoix2 ...  
   menuChoix2.addActionListener ...
}
 
 
//et j'ai une classe d'écouteur :
 
class EcouteurChoixMenu implements ActionListener {
   
    String choixRécupéré;
 
    EcouteurChoixMenu(String choixEnvoyé) {
       choixRécupéré = choixEnvoyé;
    }
 
    public void actionPerformed(ActionEvent e) {
    // je ne sais pas
    }
 
}
 
[ mode code simplifié off ]
 
 
Je pense que ça doit etre hyper simple, tellement simple que je n'arrive meme plus à savoir comment on peut faire...


---------------
dieu créa l'homme et meuh fit la vache
mood
Publicité
Posté le 01-11-2003 à 23:17:34  profilanswer
 

n°556559
benou
Posté le 02-11-2003 à 00:21:07  profilanswer
 

t'as plusieurs possibilitées ...
la plus simple et la plus souvent utilisée dans les GUI c'est de faire de ton listener une classe interne. De cette façon, elle a accès aux champs de la classe englobante :  
 

Code :
  1. class MaClasse {
  2.    String choix; //variable globale  
  3.    JMenuItem menuChoix1 = new JMenuItem("Choix1" );
  4.    menuChoix1.addActionListener( new EcouteurChoixMenu("choix1" ) );
  5.   // on peut en mettre plusieurs comme ça :   
  6.   JMenuItem menuChoix2 ... 
  7.   menuChoix2.addActionListener ...
  8. }
  9. //et j'ai une classe d'écouteur :  
  10. class EcouteurChoixMenu implements ActionListener {
  11.  
  12.    String choixRécupéré;
  13.    EcouteurChoixMenu(String choixEnvoyé) {
  14.       choixRécupéré = choixEnvoyé;
  15.    }
  16.    public void actionPerformed(ActionEvent e) {
  17.       // ici tu as accès à choix de la classe MaClasse
  18.       choix = choixRécupéré;
  19.    }
  20. }


 
Une autre solution était de passer l'instance de MaClasse en paramêtre des EcouteurChoixMenu, pour qu'ils puissent demander à MaClasse de mettre à choir sa variable choix


---------------
ma vie, mon oeuvre - HomePlayer
n°556574
le20k
un ordinateur? pour koi faire?
Posté le 02-11-2003 à 01:25:20  profilanswer
 

Yaisse ! je n'avais pas pensé à faire une classe interne à la classe Maclasse
la variable memoire est ainsi atteignable et c'est le bonheur !
merki ;)


---------------
dieu créa l'homme et meuh fit la vache
n°556719
veryfree
Posté le 02-11-2003 à 14:38:20  profilanswer
 

il passent les accents aigue a la compilation ?

n°556724
benou
Posté le 02-11-2003 à 14:53:50  profilanswer
 

veryfree a écrit :

il passent les accents aigue a la compilation ?


j'avais pas vu :)
non, je pense pas que ca passe ...


---------------
ma vie, mon oeuvre - HomePlayer
n°556738
veryfree
Posté le 02-11-2003 à 15:13:20  profilanswer
 

je viens d'essayé en fait et ca semble pas poser de probleme

n°556741
chrisbk
-
Posté le 02-11-2003 à 15:14:58  profilanswer
 

je crains de dire une grosse connerie, mais il compile pas en unicode le javac ?

n°556768
souk
Tourist
Posté le 02-11-2003 à 15:36:11  profilanswer
 

si si, unicode, vu que les caracteres japonais passent aussi a la compile :jap: :D


---------------
L'inventeur de la cédille est un certain monsieur Groçon .
n°556778
the real m​oins moins
Posté le 02-11-2003 à 15:39:35  profilanswer
 

oui ça passe :D
j'adore appeler mes objets de testcases avec des noms à la cons accentués :D

n°556780
the real m​oins moins
Posté le 02-11-2003 à 15:40:05  profilanswer
 

benou a écrit :


j'avais pas vu :)
non, je pense pas que ca passe ...

[:forummp3]
 
 
gros noob :o

mood
Publicité
Posté le 02-11-2003 à 15:40:05  profilanswer
 

n°556784
veryfree
Posté le 02-11-2003 à 15:41:11  profilanswer
 

qu il est meprisant ce smiley  
 
pire que sarcastique encore :D

n°556790
chrisbk
-
Posté le 02-11-2003 à 15:43:33  profilanswer
 

souk a écrit :

si si, unicode, vu que les caracteres japonais passent aussi a la compile :jap: :D


 
:sol:
 
Benou, si t'as besoin de cours de java ou juste une question, t'hesites pas a demander hein ? :sol:

n°556806
the real m​oins moins
Posté le 02-11-2003 à 15:51:41  profilanswer
 

[:rofl]

n°556831
le20k
un ordinateur? pour koi faire?
Posté le 02-11-2003 à 16:00:44  profilanswer
 

ya aussi les caracteres russes et grecs qui passent ... :p
 
nan plus sérieux, c'était du mode code oversimplifié, donc explicitagementation au maximum pour que ça soit le plus compréhensible possible ... quand meme !... :D


---------------
dieu créa l'homme et meuh fit la vache
n°556898
benou
Posté le 02-11-2003 à 17:49:53  profilanswer
 

je savais que le compilo supportais les caractères unicodes (y a souvent des accents dans les chaines de caractères) mais je pensais pas que c'était autorisé pour les noms de variable ...
 
J'imagine l'horreur avec des sources japonais [:ddr555]


---------------
ma vie, mon oeuvre - HomePlayer
n°556900
benou
Posté le 02-11-2003 à 17:52:04  profilanswer
 

chrisbk a écrit :

Benou, si t'as besoin de cours de java ou juste une question, t'hesites pas a demander hein ? :sol:


 [:netbios]


---------------
ma vie, mon oeuvre - HomePlayer
n°556939
souk
Tourist
Posté le 02-11-2003 à 18:43:18  profilanswer
 

benou a écrit :

je savais que le compilo supportais les caractères unicodes (y a souvent des accents dans les chaines de caractères) mais je pensais pas que c'était autorisé pour les noms de variable ...
 
J'imagine l'horreur avec des sources japonais [:ddr555]


 
je pourrai vous en poster si vous insistez :D


---------------
L'inventeur de la cédille est un certain monsieur Groçon .
n°556953
benou
Posté le 02-11-2003 à 19:12:29  profilanswer
 

souk a écrit :


 
je pourrai vous en poster si vous insistez :D


et comment ce servir d'un code écrit avec des carctères de ce style à l'étrangé ? [:mlc]


Message édité par benou le 02-11-2003 à 19:12:36

---------------
ma vie, mon oeuvre - HomePlayer
n°556973
souk
Tourist
Posté le 02-11-2003 à 19:26:47  profilanswer
 

[:spamafote] ben....  je pense qu'ils le reutilisent pas a l'etranger en fait :D


---------------
L'inventeur de la cédille est un certain monsieur Groçon .
n°556981
veryfree
Posté le 02-11-2003 à 19:31:13  profilanswer
 

moi j'ai eu a travaillé sur du code crée par un coreen, lorsque j ai fait un add sur un cvs , il voulait absolument que je le foute en binaire (alors que c etait du texte)
 
enfin le gard utilisait des variables en anglais heureusement :D
 
c'est juste la javadoc qui etait illisible...
 


 /**
  * buddyListModified À̺¥Æ® ¼ö½ÅãÁ, syncAllUsers ¸Þ¼Òµå¸¦ È£ÃâÇÏÁö ¾ÊÀ»
  * Ƚ¼ö¸¦ ÀúÀåÇÑ´Ù. ±âº»°ªµµ 0 ÀÌ°í, º¸Åë ÇÊ¿äÇÒ °æ¿ì 1À» ´ëÀÔÇÏÁö¸¸,
  * 2-3°³ÀÇ ¸Þ½ÃÁö¸¦ µ¿½Ã¿¡ º¸³¾¶§´Â 2³ª 3À» ´ëÀÔÇϸé È¿°úÀûÀÌ´Ù.
  */


Message édité par veryfree le 02-11-2003 à 19:32:02
n°557161
Cherrytree
cn=?
Posté le 02-11-2003 à 22:43:35  profilanswer
 

Question, dans le cas où l'on décide de faire du listener une classe interne de l'interface graphique, vous préférez :
- une classe pour l'ensemble, avec un actionPerformed structuré en if else,
- n classes, une pour chaque composant, de sorte que chacun à son actionPerformed à lui.


---------------
Le site de ma maman
n°557164
the real m​oins moins
Posté le 02-11-2003 à 22:49:43  profilanswer
 

2e solution
 
avec une preference pour des listeners reutilisés et pas une classe à la con de 3 ligne pour chaque foutu bouton


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°557180
benou
Posté le 02-11-2003 à 23:05:17  profilanswer
 

pareil : 2e.


---------------
ma vie, mon oeuvre - HomePlayer
n°557183
the real m​oins moins
Posté le 02-11-2003 à 23:11:12  profilanswer
 

mais par exemple, si j'avais un groupe de qques boutons qui sont en relation, je pourrais bien vivre avec le fait d'avoir un seul listener et un pti if dedans, à voir


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°557187
Cherrytree
cn=?
Posté le 02-11-2003 à 23:25:21  profilanswer
 

OK. Merci.


---------------
Le site de ma maman
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Gestion d'une variable de classe

 

Sujets relatifs
[ C ] Gestion des signaux[PHP] - passer variable en adresse... => ça recommence [:totoz]
Appeller une fonction d'une classe directementproblème con : recupérer une variable passée en paramètre
gros debutant en c++ (quelque notions) Recuper variable d'une classe ?[PHP] stocker un mot de passe dans une variable de session (en clair)
cherche classe qui parse l'HTML pour faire un aspirateur de siteQuestion variable.
[Java/C] peut on mapper une structure C a une classe java?? 
Plus de sujets relatifs à : Gestion d'une variable de classe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR