Déplacer un Label a l'aide de la souris

Résolu
kortobiI Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
kortobiI Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

comment faire pour déplacer un label quand on clique avec le bouton gauche de la sourie en utilisant MouseMontionListiner
position Initial
label.setBounds(20,20,100,10);

j'ai utilisé ce code mais le label ne suis pas le curseur
voici le code:
label.addMouseMotionListener(new MouseMotionListener(){ 
    public void mouseDragged(MouseEvent e) { 

         label.setBounds(e.getX(), e.getY(), 100, 10); 
    label.setVisible(true); 
     } 

            public void mouseMoved(MouseEvent e) {} 
 } 
 

aidez moi sVp
merci d'avance
A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Il faut faire ça en combinaison avec un MouseListener.

Quand tu cliques, tu enregistres la position courante, puis quand tu déplaces tu déplaces le label en fonction de sa position courante, de la position de départ du déplacement (que l'on enregistre) et de la position actuelle de la souris.

Exemple :

public static void main(String[] args)
{
final JLabel label = new JLabel("label");
label.setBorder(BorderFactory.createLineBorder(Color.BLACK));
label.setBounds(0, 0, 30, 20);

final Point pos = new Point();

label.addMouseListener(new MouseListener()
{
    @Override
    public void mousePressed(MouseEvent e) 
    {
        pos.setLocation(e.getX(),e.getY());
    }
    
    public void mouseClicked(MouseEvent e) {}
    public void mouseReleased(MouseEvent e) {}
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}            
});

label.addMouseMotionListener(new MouseMotionListener()
{
    @Override
    public void mouseDragged(MouseEvent e)
    {
        label.setLocation(label.getX()+e.getX()-pos.x, label.getY()+e.getY()-pos.y);
    }

    public void mouseMoved(MouseEvent e) {}            
});

JFrame frame = new JFrame();
frame.setLayout(null);
frame.setSize(200,200);
frame.add(label);        
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
0
kortobiI Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
je sais pas quoi dire ,merci beaucoup KX
Resolu
0