Problème de positionnement de la souris clic droit

bonjour à tous !
j’ai un problème assez urgent.
j’ai un jtree associé à un jpopmenu et lorsque je fais un clic droit sur l’élément sélectionné du jtree, un item nommé “valider” du jpopenu doit etre afficher à droite de l’élément du jtree selectionné.
le pb est qu’il s’affiche à 100000 km de l’élément sélectionné.
Que dois je faire.
please help me!
cheers!

voici un bout de code:

jTree1.addMouseListener(new MouseListener()
{
public void mouseClicked(MouseEvent me)
{
valider.setArmed(true);

                if(me.getButton() == MouseEvent.BUTTON3)
                    { 
                    menudroit.setLocation(me.getX(), me.getY());            //menudroit est mon jpopmenu
                   menudroit.setLocation(me.getX(), me.getY());
               
                    } //endif
                        
                } //end mouseClicked
            public void mousePressed (MouseEvent e) {}
            public void mouseReleased (MouseEvent e) {}
            public void mouseEntered (MouseEvent e) {}
            public void mouseExited (MouseEvent e) {}

});

bonjour,

La classe MouseListener est une interface, il faut donc l’implémenter dans une autre classe.
Ta méthode n’est pas très ‘propre’ à mon avis.
Je préfère passer par une autre classe quitte à charger un peu le code.

voici un exemple


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 *
 * @author Jiheme
 */
public class Fenetre extends JFrame
{
    private JPopupMenu pm;
    private JMenuItem mi;
    
    /** Creates a new instance of Fenetre */
    public Fenetre() {
    }
    
    public void play()
    {
        //création du popupmenu
        pm = new JPopupMenu("Test");
        
        //création du jmenuitem
        mi = new JMenuItem("item 1");
        
        //ajout de l'item dans le popup
        pm.add(mi);
        
        //définition générale de la fenetre de test
        Container cont = getContentPane();
        cont.setLayout(new BorderLayout());
        JPanel p_fond = new JPanel(new FlowLayout(FlowLayout.CENTER));
        JLabel l = new JLabel(new ImageIcon("C:\\temp\\aa.jpg"));
        
        //ajout d'un mouselistener sur mon label
        l.addMouseListener(new MouseListening());
        
        //ajout des différents composants de la fenetre
        p_fond.add(l,BorderLayout.CENTER);
        cont.add(p_fond,BorderLayout.CENTER);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Test Mouse Listener");
        pack();
        setVisible(true);
    }
    
    public static void main(String[] args) 
    {
        new Fenetre().play();
    }
    
    private class MouseListening implements MouseListener
    {
        public MouseListening()
        {}
        
        public void mouseClicked(MouseEvent e)
        {
            System.out.println("Mouse clicked : "+e.getXOnScreen() + "\t" + e.getYOnScreen());
            pm.setLocation(e.getXOnScreen(),e.getYOnScreen());
            pm.setVisible(true);
        }

        public void mousePressed(MouseEvent e) {
        }

        public void mouseReleased(MouseEvent e) {
        }

        public void mouseEntered(MouseEvent e) {
        }

        public void mouseExited(MouseEvent e) {
        }        
    }
}

j’ai eu le même problème avec getX/getY, car ils ne tiennent pas compte de la position de la fenêtre sur l’écran / position du composant sur l’écran.
(avec aa.jpg, une image quelconque)

merci énormément!
ça marche nickel;
c’est un truc tout c. sur lequel, j’ai galéré
merci