Bonsoir,
Je programme une application qui est censée dessiner un point lorsque l'utilisateur clique dans la fenetre. Mais je n'arrive pas à faire afficher mon point.
J'ai une JFrame qui contient un JPanel. Lors du clic le point est ajouté à une liste de points et repaint() est appelée, ce qui appelle la méthode redéfinie paint() du JPanel. J'ai du oublier un truc tout bete mais je n'arrive pas à corriger.
Merci de m'aider.
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 public class DemoGUI extends JFrame implements MouseListener { private PanelDessin panelDessin; public DemoGUI() { super(); this.setSize(800, 600); this.setResizable(false); panelDessin = new PanelDessin(this); panelDessin.setMinimumSize(new Dimension(700, 600)); panelDessin.setBorder(new LineBorder(Color.blue)); this.getContentPane().add(panelDessin, BorderLayout.CENTER); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); } public static void main(String args[]) { DemoGUI f = new DemoGUI(); f.setVisible(true); } public void mouseClicked(MouseEvent e) { panelDessin.ajouterPoint(e); this.repaint(); } public void mousePressed(MouseEvent e) { throw new UnsupportedOperationException("Not supported yet."); } public void mouseReleased(MouseEvent e) { throw new UnsupportedOperationException("Not supported yet."); } public void mouseEntered(MouseEvent e) { throw new UnsupportedOperationException("Not supported yet."); } public void mouseExited(MouseEvent e) { throw new UnsupportedOperationException("Not supported yet."); } }
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 public class PanelDessin extends JPanel{ private ArrayList<Point> listePoints; private JFrame parent; public PanelDessin(JFrame parent) { super(); this.parent = parent; listePoints = new ArrayList<Point>(); this.setSize(700, 600); this.setVisible(true); } public void ajouterPoint(MouseEvent evt) { // on met dans le bon repere Point p = evt.getLocationOnScreen(); p.setLocation(p.getX(), Math.abs(p.getY()-this.getHeight())); listePoints.add(p); } @Override public void paint(Graphics g) { super.paint(g); g.setColor(Color.red); int i =0; for (Point p : listePoints) { System.out.println("dessin du point "+i+" : "+p); g.drawRect(p.x, p.y+this.getHeight(), 5, 5); i++; } }
Partager