Bouton + menu contextuel avec swing ?

lex1111 Messages postés 220 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 26 octobre 2007 - 1 mars 2007 à 12:52
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 - 2 mars 2007 à 06:39
bonjour a tous j'aimerais savoir s'il est possible de mettre avec swing un menu contextuel juste en dessous d'un bouton comme le fait firefox avec les dossiers de marque page.
Si oui comment faire ?

Comme on peux le voir sur ces prise d'écran... C'est une methode de plus en plus utilisé, je crois qu'elle est aussi dans office 2007 ou le dernier nero.

http://aycu10.webshots.com/image/11009/2002621992977429901_rs.jpg

----

http://aycu19.webshots.com/image/10858/2002183087852673365_rs.jpg

merci pour vos réponses

3 réponses

gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
1 mars 2007 à 21:16
J4ai pas tester, mais à vu de nez c'est pile poil ce qu'il te faut :

http://java.sun.com/javase/6/docs/api/javax/swing/JPopupMenu.html
0
lex1111 Messages postés 220 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 26 octobre 2007 1
1 mars 2007 à 21:56
Merci, mais j'attendais une reponse plus précise, je me demandais comment faire pour que le jpopupmenu apparaisse non pas au clic droit mais au clic gauche et comment faire pour qu'il apparaisse juste en dessous du bouton (sachant que le bouton peux bouger)
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
2 mars 2007 à 06:39
J'ai pas vraiment le temps de tester un bout de code, mais perso, je ferai un truc de ce genre :

=> Ajouter un MouseListener à ton bouton
=> Recuperer sur leMouseEvent via getButton() le bouton concerné pour savoir si c'est bien un clic droit (un p'tit test et tu sauras auquel des 3 boutons le droit correspond).
=> Ensuite, tu fais un show() de ton instance du JPopupMenu

En gros, ça va doner ça

bouton.addMouseLsitener(new MouseListener() {
    public void mouseClicked(MouseEvent e) {
          if(e.getButton() == MouseEvent.BUTTON2) { //si tant est que le bouton droit soit le 2 pour Java)
             JButton bouton2 = TaClasse.this.bouton;
             TaClasse.this.jpopmenu.show(bouton2, bouton2.getX()-(int)(bouton2.getSize().getWidth()*1.5); //devrait centrer le coin superieur gauche du menu vis à vis du bouton ,bouton2.getY()-(int)(bouton2.getSize().getHeigth()*1.5);
          }
    }
});

Je garantis pas que ça compile, mais je pense que l'idée y est
0
Rejoignez-nous