Clic droit qui ne s'affiche pas ou je veux...

benbenny73 Messages postés 1 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 8 mai 2003 - 8 mai 2003 à 01:12
zhebulonn Messages postés 37 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 6 avril 2007 - 3 mai 2005 à 11:33
Bonjour a tous,
J'ai un probleme dans mon source :
J'ai un JPanel, composé d'un JSplitPane avec en bas une Jtable et en haut, un autre JSpiltPane qui posséde a droite une JTree et a gauche un JTextArea.(j'espere que vous suivez, car meme moi, g du mal... :) ).
Je veux faire apparaitre un menu qd je fais un clic droit sur un element de ma Jtree. Ca marche ,j'affiche bien le menu avec les coordonnées rendues par le MouseEvent, seulement, les coordonnées sont relatives a la JTree, et pas a la fenetre globale, ce qui fait que j'ai un decalage entre mon menu et l'endroit ou je fait un clic droit...

J'utilise un JPopUpMenu pour le menu.
Y'a t'il une classe qui gere directement le menu à la suite d'un clic droit? Ou y'a t'il un moyen de lui donner les coordonnées relatives a la fenêtre?..
Merci beaucoup d'avance.

Ben

3 réponses

cs_Mygal Messages postés 1 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 25 février 2005
25 févr. 2005 à 18:19
je cherche aussi une solution a ce probleme ! il faudrait pouvoir selectionner un element de l'arbre avec le clic droit... mais comment ?

Mygal
bubuze Messages postés 31 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 25 avril 2006
22 mars 2005 à 15:08
j'ai réussi à décalé ainsi :

{ popUpCarte.setLocation(new Point (

(int)e.getComponent().getLocationOnScreen().getX()+e.getX(),

(int) e.getComponent().getLocationOnScreen().getY()+e.getY());

popUpCarte.setVisible(true);}


le getLocationOnScreen().getX() correspond au (0,0) de la fenetre d'ou est déclenché le popup,

le e.getX() est la position relative de la souris.

c'est du bricolage, mais ça fonctionne



bzbz
zhebulonn Messages postés 37 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 6 avril 2007
3 mai 2005 à 11:33
Avec ce bout de code, ça devrait marcher :



public void mouseEntered(MouseEvent e) {

Point positionSouris = e.getPoint();

SwingUtilities.convertPointToScreen(positionSouris, this);

popup = new Popup(this, jp, positionSouris.x, positionSouris.y);

popup.show();

}

**Zhebulonn**
Rejoignez-nous