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
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 Y
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 perdu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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é
voilou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 svp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 recoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
j attend ta reponse merci et a +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
et bien voila le programme finale ca marche
Merci encore une fois et a plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager