Faire un dessin persistent
Bonjour à toutes et à tous,
Dans JFrame, j'ai placé un JPanel dans lequel j'ai dessiné un rectangle et un cercle.
Code:
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 compile, je lance : mon rectangle et mon cercle se dessinent : OK.
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"
Code:
1 2 3 4
| private void jButton1MouseClicked(java.awt.event.MouseEvent evt){
Graphics gE = panneau.getGraphics();
gE.drawLine(10, 10, 100, 100);
} |
Quand je lance l'appli et que je clique sur le bouton, la ligne est bien dessinée.
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.