Bonjour a tous,
Etant donné que ce post est mon premier je me présente, je suis novice en Java, et je dois faire une interface graphique pour un programme de reconnaissance de forme. J'ai deja une interface qui tient a peu pres la route, mais j'ai quand meme un probleme lors du rafraichissement de mon image. En effet des que je redimensionne ma fenetre celle-ci disparait.
Rien d'etonnant me direz vous, car j'ai fait quelques recherches et j'ai pu voir qu'il fallait utiliser un buffer pour l'image, ou bien simplement utiliser la méthode paintComponent(), qui fonctionnera de pair avec les fonctiosn update() et repaint().
Mais je n'arrive pas intégrer ceci à mon code
J'ai regardé ce post qui était en rapport avec le mien, mais je n'ai pas eu de résultat probant.
http://www.developpez.net/forums/viewtopic.php?t=464677
Voici mon code :
et je l'appelle comme suit :
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 public class EcouteClic extends MouseAdapter { private JPanel pan ; int x=0, y=0 ; public static boolean dessine = false ; public EcouteClic(JPanel panel) { this.pan = panel ; panel.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(java.awt.event.MouseEvent e) { dessine = true ; x = e.getX(); y = e.getY(); } }); panel.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent e) { Graphics2D g2d = (Graphics2D)pan.getGraphics(); if(Fenetre.toggle.isSelected()) g2d.setColor(Color.white) ; /** Défini une épaisseur de 5 pixels */ g2d.setStroke(new BasicStroke(10f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); g2d.drawLine(x, y, e.getX(), e.getY()); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); x = e.getX(); y = e.getY(); } }); } }
Je vous passe bien entendu les détails peu important pour mon probleme. Auriez vous un conseil pour que j'arrive a un résultat fonctionnel ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class Fenetre extends JFrame { private JPanel panel ; ... panel.addMouseListener(new EcouteClic(panel)) ; ... }
Partager