Bonjour,

Voici mon problème j'ai crée une petite classe qui devrait me permettre de créer une ligne dans un JPanel de manière dynamique. L'utilisateur clique sur la souris et fais un glisser jusqu'au point final de la ligne. Je souhaite que la ligne s'affiche de maniere permanente même si l'utilisateur n'à pas finaliser la ligne.

voici mon code :

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
package Dessin;
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class CLigne
    extends JPanel
    implements MouseMotionListener {
 
  public CLigne() {
    CCadrePrincipale.jPanel1.addMouseMotionListener(this);
  }
 
  public void mouseMoved(MouseEvent e) {}
 
  private int x0 = 3000;
  private int y0 = 3000;
  private int x = 0;
  private int y = 0;
 
  public void mouseDragged(MouseEvent e) {
 
        x = e.getX() ;
        y = e.getY() ;
 
        if (x0 == 3000 && y0==3000)
        {
          x0 = e.getX() ;
          y0 = e.getY() ;
        }
            repaint();
  }
 
  protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawLine(x0, y0, x, y);
  }
 
}
Je sais que la méthode pour dessiner la ligne n'est pas du tous optimisé mais ce n'est pas grave pour mon application. Le probleme est que je ne vois rien s'afficher quand je dessine, cela vient je pense de ma méthode paintComponent car les coordonnées (x0,y0,x,y) sont stockées correctement.

merci




[Modéré par Didier]
Ajout de tag dans le titre
Lire les règles du forum : Règles du forum Java