[Résolu] pb déplacement de composants avec la souris

pb déplacement de composants avec la souris [Résolu] - Java - Programmation

Marsh Posté le 17-04-2004 à 11:26:57    

Je souhaite pouvoir déplacer des JButton dans une JFrame à l'aide de la souris.
 
Pour l'instant, j'arrive un peu à les déplacer mais il y a un problème:
Lors du mouseDrag, le JButton apparait successivement près du curseur, puis ailleurs (en haut à gauche) dans la JFrame.
 
Ce qui fait qu'au relâchement de la souris, le JButton est mal placé:
- soit il s'est déplacé de moitié par rapport à la souris,
- soit il est ailleurs dans la JFrame.
 
Voici mon code pour l'instant:  
- J'ajoute un MouseListener et un MouseMotionListener au JButton.
- Et dans ma classe qui implement MouseMotionListener, j'ai entre autre:
 
public void mouseDragged(MouseEvent evt) {
 
        x = evt.getX();
        y = evt.getY();
        ((JButton)evt.getSource()).setLocation(x,y);
 
}
 
Voilà voilà... Comment faire pour que les JButton se déplacent correctement ?


Message édité par voleurdecarottes le 17-04-2004 à 20:54:37
Reply

Marsh Posté le 17-04-2004 à 11:26:57   

Reply

Marsh Posté le 17-04-2004 à 14:51:16    

Hé béh alors, où est-ce qu'ils se cachent les roxxor ??? Soyez pas timides !  :bounce:


Message édité par voleurdecarottes le 17-04-2004 à 14:51:36
Reply

Marsh Posté le 17-04-2004 à 16:53:25    

:cry: Celui ou celle qui peut m'aider, je lui donne... toute ma considération

Reply

Marsh Posté le 17-04-2004 à 20:55:31    

Après réflexion, il fallait écrire quelque chose du genre:
x = (int)(evt.getX()+((JButton)evt.getSource()).getX());
y = (int)(evt.getY()+((JButton)evt.getSource()).getY());
 
Bon, c'est chouette, j'ai désormais un programme qui permet de placer un nombre quelconque de JButtons à des endroits quelconques d'une JFrame au moyen de la souris.
 
Mais, mais... c'est moi le roxxor finalement! Comme on dit: Aide-toi le ciel t'aidera...  :pt1cable:


Message édité par voleurdecarottes le 17-04-2004 à 21:08:39
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed