Bonjour,
j'ai une classe qui est un JPanel Javabean représentant un cercle.
Une autre classe (tableau) également un JPanel Javabean contient un tableau de 9cercles.
Et pour finir une classe (fenetre) qui affiche le jpanel tableau.
Voici les codes de la classe Cercle et la classe Tableau:
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 public class Cercle extends JPanel implements Serializable { private Color couleur1; private Color couleur2; private boolean peintRouge; public Cercle(){ couleur1=Color.RED; couleur2=Color.LIGHT_GRAY; peintRouge=false; this.setPreferredSize(new Dimension(25,25)); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.BLACK); g.drawOval(0,0,20,20); if(peintRouge) g.setColor(couleur1); else g.setColor(couleur2); g.fillOval(0,0,20,20); } // + tous les getteurs et setteursCe que je voudrais c'est que quand je clique sur le premier cercle --> positions 0,0, il prenne la couleur rouge --> il passe de l'état LIGHT_GRIS l'état peintRouge (donc RED).
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 public class Tableau extends JPanel implements Serializable { private Cercle[][] tab; private int nbLignes; private int nbColonnes; private Color colorEtat; public Tableau(){ nbLignes=3; nbColonnes=3; tab = new Cercle [nbLignes][nbColonnes]; for (int i=0 ; i<nbLignes ; i++ ) for(int j=0 ; j<nbColonnes ; j++ ){ tab[i][j]=new Cercle(); MouseListener clicLed = new MouseListener() { public void mouseClicked(MouseEvent e) { tab[0][0].setPeintRouge(true); } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} }; tab[0][0].addMouseListener(clicLed); } for (int i=0 ; i<nbLignes ; i++ ) for(int j=0 ; j<nbColonnes ; j++ ) add(tab[i][j]); setLayout(new GridLayout(nbLignes,nbColonnes)); } // + getteurs et setteurs
Quand ma fenêtre s'ouvre, et que je clique sur le premier cercle, il garde sa couleur grise mais si à ce moment là je réduit ma fenêtre (elle va dans la barre des tâches et que je l'agrandis à nouveau, alors le cercle est peint en rouge!
Savez vous m'aider?
Merci d'avance.
Partager