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

Résolu/Fermé
kortobiI Messages postés 21 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 2 décembre 2014 - Modifié par kortobiI le 24/02/2013 à 14:42
kortobiI Messages postés 21 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 2 décembre 2014 - 24 févr. 2013 à 14:58
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
24 févr. 2013 à 14:47
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 dimanche 24 février 2013 Statut Membre Dernière intervention 2 décembre 2014
24 févr. 2013 à 14:58
je sais pas quoi dire ,merci beaucoup KX
Resolu
0