salut
je veux detecter un contour(avoir les cordonnes des points d image ou je click par la souris)en java
si quelqu un peu m aider sur ca svp
merci d avance
n.b: debutante en java
Version imprimable
salut
je veux detecter un contour(avoir les cordonnes des points d image ou je click par la souris)en java
si quelqu un peu m aider sur ca svp
merci d avance
n.b: debutante en java
Salut, il faut que tu mette en place un mouse listener
un truc du genre :
Tu definis les méthodes qui correspondent à ce que tu veux faire. Ici la methode mouseClicked met les coordonnées du point cliqué dans X et YCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public void mouseClicked(MouseEvent e) { //Invoked when the mouse has been clicked on a component. x=e.getX(); y=e.getY(); } public void mousePressed(MouseEvent e) {} //Invoked when a mouse button has been pressed on a component. public void mouseReleased(MouseEvent e) {} //Invoked when a mouse button has been released on a component. public void mouseEntered(MouseEvent e) {} //Invoked when the mouse enters a component. public void mouseExited(MouseEvent e) {} //Invoked when the mouse exits a component.
bien sur tu fais un
sur l'objet qui va bien (celui sur lequel tu veut exouter les click de souris)Code:
1
2 addMouseListener();
Bon courrage
salut
et bien merci pour votre reponse
j ai pas bien compris ce que tu veux dire par le code si vous voulez m explique
et est ce que je dois ajouter un return (x,y) apres ca
pour avoir les cordonnes je ss perduCode:
1
2
3
4
5 public void mouseClicked(MouseEvent e) { //Invoked when the mouse has been clicked on a component. x=e.getX(); y=e.getY(); }
merci
bon il faut que tu fasse un addMouseListener(new MyMouseListener()) sur l'objet qui doit ecouter les click de souris.
Ensuite il faut definir la class MyMousseListener qui doit implementer MouseListener et y definir les méthode de l'interface MouseListener
Dans la méthode mouseClicked tu fait e.getX() et e.getY() pour recupérer les coordonnées du point cliqué
voilouCode:
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 Public class MyMouseListener implements MouseListener { public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { x=e.getX(); y=e.getY(); } }
merci pour votre attention vous m aider beaucoup
et bien voila ce que je fais ca marche tjs pas
si ta une suggestion svp svpCode:
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 import javax.swing.* ; import java.awt.* ; class MaFenetre extends JFrame { MaFenetre () { setTitle ("IMAGES") ; setSize (800, 500) ; pan = new Panneau() ; getContentPane().add(pan) ; } private JPanel pan ; } class Panneau extends JPanel { public Panneau() { photo = getToolkit().getImage("Sans titre.gif") ; } public void paintComponent(Graphics g) { super.paintComponent(g) ; int x=10, y=10 ; if(photo != null) {g.drawImage (photo, x, y, this);System.out.println("photo");} } private Image photo = null; } class TestMenu Public class MyMouseListener implements MouseListener { public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { x=e.getX(); y=e.getY(); } } { public static void main (String argv[]) { MaFenetre fen = new MaFenetre() ; fen.setVisible(true) ; } }
Salut,
Comme je te le disais dans mes post précédent, il faut que tu ajoute le mouselistener sur ton panel :
++Code:
1
2 pan.addMouseListener(new MyMouseListener());
merci infiniment pour votre aide
et bien voila ce que j ai fais mais ca marche tjs pas
et voila les message d erreur que je recoiCode:
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 import javax.swing.* ; import java.awt.* ; import java.awt.event.*; class MaFenetre extends JFrame { MaFenetre () { setTitle ("IMAGES") ; setSize (800, 500) ; pan = new Panneau() ; getContentPane().add(pan) ; pan.addMouseListener(new MyMouseListener(pan)); } private JPanel pan ; } class Panneau extends JPanel implements MousListener { public Panneau() { photo = getToolkit().getImage("sans titre.gif") ; } public void paintComponent(Graphics g) { super.paintComponent(g) ; int x=10, y=10 ; if(photo != null) {g.drawImage (photo, x, y, this);System.out.println("photo");} } private Image photo = null; } // class TestMenu //Public class MyMouseListener implements MouseListener { public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { x=e.getX(); y=e.getY(); } { public static void main (String args[]) { MaFenetre fen = new MaFenetre() ; fen.setVisible(true) ; } }
Class,interface,or enum expected
pour les lignes en rouge
j espere que j abuse pas de votre gentillesse et votre temps
et merci bcq a +
plusieurs choses :
1 - Je ne sais pas si tu a modifier le code avant de le coller ici mais j'ai l'impression qu'il manque des ligne
2 - essai de donner ton code dans sa version complete
3 - à la ligne "class Panneau extends JPanel implements MousListener" il manque le "e" de mouse
4 - je vois pas les lignes en rouge dont tu parles
salut
merci trop; merci
voila le code mais ca marche tjs pas
svp :help:
j attend ta reponse merci et a +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 import javax.swing.* ; import java.awt.* ; import java.awt.event.*; class MaFenetre extends JFrame implements MouseListener { MaFenetre () { setTitle ("IMAGES") ; setSize (800, 500) ; pan = new Panneau() ; getContentPane().add(pan) ; pan.addMouseListener(new MyMouseListener(pan)); } private JPanel pan ; } class Panneau extends JPanel { public Panneau() { photo = getToolkit().getImage("sans titre.gif") ; } public void paintComponent(Graphics g) { super.paintComponent(g) ; int x=10, y=10 ; if(photo != null) {g.drawImage (photo, x, y, this);System.out.println("photo");} } private Image photo = null; } public void mouseClicked(MouseEvent ev) { int x = ev.getX() ; int y = ev.getY() ; System.out.println ("clic au point de coordonnees " + x + ", " + y ) ; } public void mousePressed (MouseEvent ev) {} public void mouseReleased(MouseEvent ev) {} public void mouseEntered (MouseEvent ev) {} public void mouseExited (MouseEvent ev) {} } public void mouseClicked(MouseEvent e) { x=e.getX(); y=e.getY(); } public class essai aff1 { public static void main (String args[]) { MaFenetre fen = new MaFenetre() ; fen.setVisible(true) ; } }
Voici ton code un peu modifier (il faut que tu aprenne a coder propre se serait cool ...)
Deja tu n'avais pas de setVisible(true) sur ta frame;
ensuite j'ai enlever ta static void main il faut que tu la rajoute car moi j'ai fait des essai dans un programme que j'avais deja.
Sa marche sa m'achine bien les coordonnées du point que je clique a toi d'ameliorer et de faire ce qu'il te reste a faire.
++
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 import javax.swing.* ; import java.awt.* ; import java.awt.event.*; class MaFenetre extends JFrame { public MaFenetre () { setTitle ("IMAGES") ; setSize (800, 500) ; setVisible(true); pan = new Panneau() ; getContentPane().add(pan) ; pan.addMouseListener(new MyMouseListener()); } private JPanel pan ; class Panneau extends JPanel { public Panneau() { photo = getToolkit().getImage("sans titre.gif") ; } public void paintComponent(Graphics g) { super.paintComponent(g) ; int x=10, y=10 ; if(photo != null) { g.drawImage (photo, x, y, this);System.out.println("photo"); } } private Image photo = null; } public class MyMouseListener implements MouseListener { public void mouseClicked(MouseEvent ev) { int x = ev.getX() ; int y = ev.getY() ; System.out.println ("clic au point de coordonnees " + x + ", " + y ) ; } public void mousePressed (MouseEvent ev) {} public void mouseReleased(MouseEvent ev) {} public void mouseEntered (MouseEvent ev) {} public void mouseExited (MouseEvent ev) {} } }
j ne peu pas te remercie suffisament pour ton aide! merci:merci:
et bien voila le programme finale ca marche
Merci encore une fois et a plusCode:
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 import javax.swing.* ; import java.awt.* ; import java.awt.event.*; class MaFenetre extends JFrame { public MaFenetre () { setTitle ("IMAGES") ; setSize (500,300) ; setVisible(true); pan = new Panneau() ; getContentPane().add(pan) ; pan.addMouseListener(new MyMouseListener()); } private JPanel pan ; class Panneau extends JPanel { public Panneau() { photo = getToolkit().getImage("sans titre.gif") ; } public void paintComponent(Graphics g) { super.paintComponent(g) ; int x=10, y=10 ; if(photo != null) { g.drawImage (photo, x, y, this);System.out.println("photo"); } } private Image photo = null; } public class MyMouseListener implements MouseListener { public void mouseClicked(MouseEvent ev) { int x = ev.getX() ; int y = ev.getY() ; System.out.println ("clic au point de coordonnees " + x + ", " + y ) ; } public void mousePressed (MouseEvent ev) {} public void mouseReleased(MouseEvent ev) {} public void mouseEntered (MouseEvent ev) {} public void mouseExited (MouseEvent ev) {} } } public class fat {public static void main(String args[]) {MaFenetre fen=new MaFenetre(); fen.setVisible(true); } }
Dite moi, ca fait plusieurs fois que je vois pour des actions type mouse listener de choper tout les type d'action dessus (le clic pressé, relaché ...), même si aucun traitement n'est fait dessus.
Cela change quelque chose de ne pas les choper du tout ?
Ce qui est possible de faire c'est d'étendre la classe MouseAdapter au lieu d'implémenter l'interface MouseListener. Ainsi, tu ne redéfinit que la(les) méthode(s) dont tu as vraiment besoin. Les autres ayant un corps vide ;)
Oughh j'avais pas fais attention que la class avait été redéfinis, désolé ^^.
salut
apres avoir resolu le problemes des cordonnes maintenant je dois les stocker ds un vecteur mais ca marche pas si qlq un peu m aider voila le code
merci d avance
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 import javax.swing.* ; import java.awt.* ; import java.awt.event.*; import java.util.Vector; class MaFenetre extends JFrame { public MaFenetre () { setTitle ("IMAGES") ; setSize (500,300) ; setVisible(true); pan = new Panneau() ; getContentPane().add(pan) ; pan.addMouseListener(new MyMouseListener()); } private JPanel pan ; class Panneau extends JPanel { public Panneau() { photo = getToolkit().getImage("imp.gif") ; } public void paintComponent(Graphics g) { super.paintComponent(g) ; int x=10, y=10 ; if(photo != null) { g.drawImage (photo, x, y, this);System.out.println("photo"); } } private Image photo = null; } public class MyMouseListener implements MouseListener { public void mouseClicked(MouseEvent ev) { int x = ev.getX() ; int y = ev.getY() ; System.out.println ("clic au point de coordonnees " + x + ", " + y ) ; } public void mousePressed (MouseEvent ev) {} public void mouseReleased(MouseEvent ev) {} public void mouseEntered (MouseEvent ev) {} public void mouseExited (MouseEvent ev) {} } } public class EssaiListe { private static Vector v = new Vector(); public static void lister() { for (int i =0 ; i< v.size() ; i++) System.out.println( "élément N°"+i+" : "+ v.elementAt(i) ); System.out.println(); } public class fat {public static void main(String args[]) {MaFenetre fen=new MaFenetre(); fen.setVisible(true); /*v.addElement("x"); v.addElement("y"); lister();*/ }
voila mon probleme en claire:
je veux stocker mes cordonnes de click sous forme de vecteur apres avoir fini
alors comment faire ?:help: