bonjour , j'ai cree un button sur un jpanel et j'aimerrai bien le faire bouger a l'aide de la souris si c'est possible merci d'avance
Version imprimable
bonjour , j'ai cree un button sur un jpanel et j'aimerrai bien le faire bouger a l'aide de la souris si c'est possible merci d'avance
Tu doit faire un public void actionPerformed(ActionEvent e) {...}. :wink:
Tu veux dire du Drag & Drop ?
http://gfx.developpez.com/tutoriel/java/swing/drag/
Tu as plusieurs approches selon l'évènement de déclenchement :
- clic sur le bouton -> ActionListener
- faire glisser le bouton vers un autre endroit de ta fenetre -> Drag and Drop
- faire un jeu dans lequel le bouton "fuit" la souris -> MouseListener
- le bouton se déplace tout seul et aucun évènement ne l'affecte -> panel.setLayout(null), puis bouton.setBounds().
oui, drag and drop que je veux dire?encor une idée? merci bcp
Salut.
:idea: Tu peut faire un MouseListener avec la methode mouseDragged(MouseEvent e).
ce la te permet de glissé ton boutton ou tu veut.
En fette pour le bouger tu fait un setBounds(x,y,x_longeur,y_lageur), mais au lieu de faire un x et y dans la methode tu met e.getX() et e.getY(), ce la te permet de glisé ton boutton où est la position du curseur, ce que veut dire, whereever you want . :wink:
Testé :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JButton; public class BougerUnBouton { public static class MaFenetre{ private JFrame fenetre; private int largeurFenetre = 300; private int hauteurFenetre = 200; private JPanel panneau; private JButton bouton; private int largeurBouton = 100; private int hauteurBouton = 50; private String labelBouton = "OK"; private int xSourisClick; private int ySourisClick; public MaFenetre() { fenetre = new JFrame(); panneau = new JPanel(null); bouton = new JButton(labelBouton); panneau.add(bouton); fenetre.getContentPane().add(panneau); bouton.setSize(largeurBouton, hauteurBouton); bouton.setLocation(0, 0); bouton.addMouseMotionListener(new MesEvenementsSouris()); bouton.addMouseListener(new MesEvenementsSouris()); fenetre.setSize(largeurFenetre, hauteurFenetre); fenetre.setVisible(true); } public class MesEvenementsSouris implements MouseMotionListener, MouseListener { public void mouseMoved(MouseEvent e) {} public void mouseDragged(MouseEvent e) { e.getComponent().setLocation(e.getComponent().getX() + e.getX() - xSourisClick, e.getComponent().getY() + e.getY() - ySourisClick); } public void mouseClicked(MouseEvent e) {} public void mousePressed(MouseEvent e) { xSourisClick = e.getX(); ySourisClick = e.getY(); } public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} } } public static void main(String[] args) { MaFenetre mf = new MaFenetre(); } }
c'est pas un code ca 8O , je dirais bien une penition :lol: c'est chaud ce que tu a ecrit. 8O
merci bcp white rabit , c'etait exactement ce que me falait
Je peux enlever les commentaires si c'est trop lourd à lire ...Citation:
Envoyé par charaf
D'ailleurs c'est fait
non non, j'ai pris juste qqs lignes qui me manquaient pour faire bouger mon boutton et ca a marché, c'est tres gentil de ta part .merci encore
Ben non c'est le minimum :Citation:
Envoyé par charaf
je récupère dans xSourisClick et ysourisClick les coordonnées du curseur de la souris quand on clique sur le bouton ( :!: les coordonnées sont relatives au bouton, pas à la fenêtre)
quand on bouge la souris avec un bouton appuyé on change la position du bouton avec un petit calcul où ob réutilise xSourisClick et ySourisClick
n'oublie pas le bouton :resolu: :wink:
Ce serai pas mal de le mettre dans les petites sourcesdu forum java (les post-it) car ca c'est un petit code bien utile que l'on cherche souvent (surtout la formule de calcul de mouvement bien embetant ca j'ai mis 2 jours la dernire fois que j'en ai eu besoin pour la trouver)
Désolé si j'ai choqué du monde à trouver une petite formule de math en si longtemps ... :D
re salut.
chapeau tiré pour mensieur White Rabbit
: )