Effacer dans graphics

Résolu
XIIIII Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   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 14 Date d'inscription   Statut Membre Dernière intervention  
 
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 14 Date d'inscription   Statut Membre Dernière intervention  
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   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