Effacer dans graphics
Résolu
XIIIII
Messages postés
16
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
comment effacer une forme 'Graphics' déja dessinée ?
par exp:
g.drawRect(x,y,h,l);
g.drawString(msg1,x1,y1);
...
//ensuite je veux effacer mon message et le remplacer par un autre message (msg2)
merci
comment effacer une forme 'Graphics' déja dessinée ?
par exp:
g.drawRect(x,y,h,l);
g.drawString(msg1,x1,y1);
...
//ensuite je veux effacer mon message et le remplacer par un autre message (msg2)
merci
1 réponse
-
La méthode paint est appelé automatiquement lors du redimensionnement de la fenêtre ou manuellement avec la méthode repaint. Tu devrais donc faire un repaint et faire en sorte qu'au lieu de dessiner tes premières instructions la méthode paint dessine les secondes...
Exemple :
private int etat = 1; @Override public void paint(Graphics g) { super.paint(g); System.err.printf("paint(etat=%d);\n",etat); switch (etat) { case 1: g.drawRect(x,y,h,l); g.drawString(msg1,x1,y1); break; case 2: g.drawString(msg2,x2,y2); break; } } public void changerEtat(int etat) { this.etat = etat; repaint(); }La confiance n'exclut pas le contrôle-
oui je te suis, mais moi j'ai une boucle, j'ai trouvé une petite astuce :
if(....){
g.setColor(Color.black);
g.drawString(msg1,x1,y1);
}
else{
g.setColor(new Color(240,240,240));
g.fillRect(x1, x2, h,l);
g.setColor(Color.black);
g.drawString(msg2,x1,y1);
}
je mets un rectangle qui prend la couleur de l'arrière plan ensuite je dessine mon deuxième texte
merci encore pour ton aide ;) -
-
C'et normal que le dessin s'efface lorsque la fenêtre est réduite, puisque c'est toute la fenêtre qui s'efface. Cependant, lorsqu'elle est agrandie, la méthode paint devrait être appelée automatiquement, sous réserve que la précédente exécution de paint soit terminée. Il faudrait que je vois le code complet de paint pour voir quelle genre d'erreurs tu as pu faire, mais j'ai peur que la boucle dont tu parlais ne bloque les automatismes.
-