Bonjour à toutes et à tous,
Dans JFrame, j'ai placé un JPanel dans lequel j'ai dessiné un rectangle et un cercle.
Je compile, je lance : mon rectangle et mon cercle se dessinent : OK.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class Panneau extends JPanel{ public Panneau(String titre){ setBounds(10, 10, 200, 100); } public void paint(Graphics g){ setBackground(Color.WHITE); g.clearRect(0, 0, 200, 100); Color c = g.getColor(); g.setColor(Color.RED); g.fillRect(10, 10, 50, 50); g.setColor(Color.BLUE); g.fillOval(100, 10, 50, 50); g.setColor(c);
Je déplace la fenêtre de mon appli vers l'extérieur de l'écran et, lorsque je la ramène dans l'écran, le rectangle et le cercle se redessinent au fur et à mesure que la fenêtre rentre dans l'écran.
Même chose si je masque le fenêtre de mon appli par une autre et que je la démasque : le rectangle et le cercle se redessinent.
Maintenant, je souhaite, à partir d'un évènement extérieur (click sur un bouton par exemple (à 'laide de lEDI NetBeans)) dessiner une ligne dans ce "panneau"
Quand je lance l'appli et que je clique sur le bouton, la ligne est bien dessinée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private void jButton1MouseClicked(java.awt.event.MouseEvent evt){ Graphics gE = panneau.getGraphics(); gE.drawLine(10, 10, 100, 100); }
Problème : Si maintenant je refais les déplacements sus-cités, si le rectangle et le cercle se redessinent bien, la ligne ne se redessine plus.
Comment faire pour qu'elle se redessine ?
D'une manière générale, comment faire pour que des actions de dessin qui ne sont pas dans la méthode "paint" du composant soient redessinées ?
Ca fait deux jours que je tourne en rond sur le WEB et (mal cherché sûrement) je n'ai rien trouvé ! Ce problème est pourtant basique.
Merci de votre aide.
Pierre.
Partager