Connaitre l'indice de l'item cliqué dans un jpopup menu [résolu]

Connaitre l'indice de l'item cliqué dans un jpopup menu [résolu] - Java - Programmation

Marsh Posté le 30-01-2005 à 21:33:55    

Bonjour,
 
je cherche à connaitre l'indice de l'item cliqué dans un jpopup menu dans l'action listenner du menuItem.
 
j'ai tenté :
 
popupMenu.getSelectionModel().getSelectedIndex()
 
mais ça me renvoie toujours -1


Message édité par EpoK le 04-02-2005 à 11:00:11
Reply

Marsh Posté le 30-01-2005 à 21:33:55   

Reply

Marsh Posté le 31-01-2005 à 09:26:00    

:sweat:

Reply

Marsh Posté le 31-01-2005 à 09:44:00    

je m'y connait pas bien en swing, mais je comprend pas bien pkoi tu veux récupérer l'index de l'item cliqué...
 
si c'est pour savoir quel item a été cliqué pour effectuer la bonne action, pkoi tu affectes pas plutot des ActionListener à chaque JMenuItem ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 31-01-2005 à 11:03:26    

en fait je doit appeler la meme fonction quel que soit le menuItem mais l'indice me permet de retrouver un autre objet dans un tableau
 
mon menu popup donne :
 
item0  -> au click appel de la fonction avec t[0]
item1  -> au click appel de la fonction avec t[1]
item2  -> au click appel de la fonction avec t[2]

Reply

Marsh Posté le 31-01-2005 à 21:23:36    

:/

Reply

Marsh Posté le 02-02-2005 à 21:36:49    

:/

Reply

Marsh Posté le 02-02-2005 à 21:57:45    

ben benou a qd meme raison...avec un listener personnalisé, tu peux faire ce que tu veux
 


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 03-02-2005 à 00:08:19    

bah tout depend de ce que sont ces items et ce qu'il en fait.. la liste n'est pas necessairement statique.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 03-02-2005 à 10:53:38    

:??:  
rien n'empêche d'utiliser des listeners perso sur des items générés à la volée (au contraire)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-02-2005 à 11:48:04    

mais ça répond pas à la question de voir pourquoi ce qu'il fait marche pas


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 03-02-2005 à 11:48:04   

Reply

Marsh Posté le 03-02-2005 à 13:36:56    

surement parce que le clic sur un item n'est pas considéré comme une selection ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-02-2005 à 13:45:13    

m'enfin qu'est-ce qu'il fout là ce selectionModel, sur un menu, en fait ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 03-02-2005 à 14:57:40    

-- > c'est une excellente question !!!!
 
si quelqu'un pouvait aller voir le code source, et nous le dire, ça serait cool

Reply

Marsh Posté le 03-02-2005 à 15:02:57    

c'est pas parce que c'est l'objet utilisé pour les menus ? genre quand tu déroules un menu, l'item "déroulée" est sélectionné.
Donc ce serait valable que pour les menus à plus d'une dimension ce qui est rarement le cas d'un popup sur clic droit


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-02-2005 à 15:12:14    

benou > y'en a pas dans JMenu, mais y'en a dans JMenuBar

Reply

Marsh Posté le 03-02-2005 à 22:11:13    

vous avez des idées alors ?

Reply

Marsh Posté le 03-02-2005 à 23:48:08    

bha toujours la même qu'au début. je sais pas pkoi t'en veux pas ...

Reply

Marsh Posté le 04-02-2005 à 10:08:53    

Citation :

en fait je droit recréer mon jpopup à chaque affichage  
 
j'ai un ArrayList list  
 
et je fait un boucle dessus  
 
for(in i = 0 ...)  
j'ajoute un menu item correspond à l'élément "i" de ma list  
et je lui met un action listener  
item.addActionListener {  
 et là j'aimerai qu'il m'appele une fonction f avec l'indice "i" c'est   pour ca que j'essai de récuperer l'index.  
}


 
oui ... donc je ne vois pas le probleme ...
 

Code :
  1. class PopupListener {
  2.    private int idx;
  3.    public PopupListener(int idx) {
  4.       this.idx = idx;
  5.    }
  6.    public void actionPerformed(ActnioEvent e) {
  7.       laFonctionQueTuVeuxAppeler(idx);
  8.    }
  9. }
  10. //...
  11. for(in i = 0 ...)  {
  12.   //...
  13.   item.addActionListener(new PopupListener(i));
  14. }


[:spamafote]

Reply

Marsh Posté le 04-02-2005 à 10:59:49    


 
 :jap:  
 
en fait j'était resté bloqué sur mon écouteur anonyme alors qu'évidement il suffisait de le passer en param au constucteur.
 
merci  :jap:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed