Bonjour help SVP, je ne vais pas passer par 4 chemins car je méga-bloque voilà :

J'ai une classe contenant une méthode qui me tracer un cercle à chaque fois que je l'appelle; elle est ici cette classe :

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
public abstract class Affiche_TStation extends JPanel implements MouseInputListener{
    
    private static final long serialVersionUID = 1L;
    public int CrdX,CrdY,LRayon;
    int  u,v,w;
    int ma_matrice[][];

    public Affiche_TStation(){
        this.CrdX = CrdX;
        this.CrdY = CrdY;
        this.LRayon = LRayon;   
    }
    
    //******************************************************
    public int getCrdX(){
        return CrdX;
    }
    public void setCrdX(int CrdX){
        this.CrdX = CrdX;
    }
    //*******************************************************
    public int getCrdY(){
        return CrdY;
    }
    public void setCrdY(int CrdY){
        this.CrdY = CrdY;
    }
    //********************************************************    
    public int getLRayon(){
        return LRayon;
    }
    public void setLRayon(int LRayon){
        this.LRayon = LRayon;
    }
    //********************************************************
    
    public void tracer_cercle(int X, int Y, int Rayon, BufferedImage BfrImg){
        Graphics2D g = (Graphics2D)BfrImg.getGraphics(); 
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f ));
        g.setColor(Color.blue);
        g.fillOval(X, Y, Rayon, Rayon);                            
        g.setColor(Color.red);      
        g.fillRect(((X+(Rayon/2))-(Rayon/20)), ((Y+(Rayon/2))-(Rayon/20)), Rayon/10, Rayon/10);
        //stockage des coord ici peut être ???
        setCrdX(X);
        setCrdY(Y);
        setLRayon(Rayon);
        //stocke_stations(X,Y,Rayon);
    }
    
}
Une deuxème classe qui en fait une frame, dans laquelle j'appelle la méthode trace cercle, voici des bouts de cette classe (car llongue quand même)

Le traceur :

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
traceur = new Affiche_TStation() {
            
            private static final long serialVersionUID = 1L;
            
            public void init(){
                addMouseListener(this);
                addMouseMotionListener(this);
            }

            @Override
            public void mousePressed(MouseEvent e){
                CrdX = e.getX();
                CrdY = e.getY();
                tracer_cercle(CrdX,CrdY,S,BfrImage);
                //repaint();
            }
            
            @Override
            public void mouseDragged(MouseEvent e){
                if(contains(e.getX(), e.getY())){
                    CrdX = e.getX();
                    CrdY = e.getY();
                    tracer_cercle(CrdX,CrdY,S,BfrImage);
                    //repaint();
                }
            }
            
}
Et enfin le bouton qui m'aide à tracer ici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
bouton.addActionListener(new ActionListener() {
          // Blabla
                            traceur.tracer_cercle(a,b,S,BfrImage); 
                        }
        );
Quand j'execute, mes cercles sont dessinés, seulement voilà que ma fenetre faite comme si elle n'avait pas d'écouteurs, càd que quand je clique sur le cercle pour le deplacer, rien ne se passe.

Avez-vous une idée SVP ?