Effacer dans graphics

Résolu
XIIIII Messages postés 16 Statut Membre -  
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

1 réponse

KX Messages postés 19031 Statut Modérateur 3 020
 
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
0
XIIIII Messages postés 16 Statut Membre
 
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 ;)
0
XIIIII Messages postés 16 Statut Membre
 
SVP une question , lorsque je réduits la fenêtre alors le dessin s'efface !! comment remédier ce problème ??
tks
0
KX Messages postés 19031 Statut Modérateur 3 020
 
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.
1