Salut à tous.
Voila, je bricole un espece de paint vectoriel qui marche pas trop mal. Cependant, j'ai quelques bugs au niveau de la gestion de la souris. Lors d'un d'un drag & drop sur mon panel, il me faut faire le distinction entre le bouton gauche (dessiner) et droit (rien dessiner)
voila un bout de code:
Code :
- //Ajout d'un écouteur sur la souris
- addMouseMotionListener(new MouseMotionAdapter()
- {
- //la souris bouge avec un bouton maintenu enfonçé
- public void mouseDragged(MouseEvent event)
- {
- //Si on n'est pas en mode sélection, on modifie les champs x2 et y2 de manière à ce que la forme "suive" le curseur en mode dessin
- if(!select && event.getButton() != 3)
- {
- x2 = event.getX();
- y2 = event.getY();
- repaint();
- }
- //Si une forme est sélectionnée, on la déplace
- else if(selected)
- {
- x2 = event.getX();
- y2 = event.getY();
- selectedShape.translate(x2 - x1, y2 - y1);
- repaint();
- x1 = x2;
- y1 = y2;
- }
- }
- });
|
Le problème est que le event.getButton() renvoie le bouton qui change d'état. Par définition, y'a pas de changement d'état dans un drag&drop. Quelqu'un a une autre solution que de sauver le bouton cliqué dans une variable lors du mousePressed ?
Merci
Message édité par GroXx le 26-08-2006 à 15:24:42