Un composite Graphiques de compensation et de repeindre?

J'ai un JPanel avec un paintComponent() fonction. Je vais l'appeler une fois, puis lorsque l'utilisateur clique sur un autre JButton, je vais mettre quelques drapeau et souhaitez appeler cette fonction à nouveau comme il va faire quelque chose de légèrement différent après le drapeau est réglé.

Donc voici ce que je me demande: comment faire pour effacer l'existant à partir de paintComponent? Et de rafraîchissement, dois-je viens de l'appeler paintComponent de nouveau?

Actuellement, je suis en train suivantes:

flag2 = true;
repaint(); //I expect (want) paintComponent to be called again

Dans la peinture composant, je fais des trucs comme:

if (flag2==true) {
    g.drawRect(...);
} else {
    g.drawLine(...);
}

Mais à travers des tests, il semble comme il ya quelque chose de mal avec ce que je fais.

Merci pour toute aide.

Vous n'êtes pas à l'appel de repaint() dans la méthode paintComponent, êtes-vous? Êtes-vous sûr de repaint() l'appel est associé avec le panneau que vous voulez actualisé? (par exemple, myPanel.repaint())?

OriginalL'auteur JDS | 2011-08-01