2010-04-12 26 views
0

Hé les gars, j'ai un petit problème ici. J'ai un panneau où je dessine une chaîne. C'est un jeu donc je continue à redessiner le score afin de le mettre à jour. Cependant, quand je le dessine à nouveau, il est dessiné au-dessus du score précédent, donc tout semblait brouillé. Une idée de comment réparer ça?Java Graphics2D DrawString

comp2d.drawString (Score (Score), ScoreX, ScoreY);

+2

Sons comme votre arrière-plan du panneau n'est pas autorisé pendant le processus de redessiner. Si vous pouvez fournir plus de détails (code) sur la façon dont vous repeignez, cela aidera à déterminer quel est le problème. – Ash

Répondre

5

Vous devez redessiner l'arrière-plan avant de peindre la chaîne. Si c'est un panneau ordinaire, vous pouvez redessiner l'arrière-plan par un appel à super.paintComponent(g) dans votre propre paintComponent; Cependant, puisque c'est un jeu, je vais deviner que vous avez d'autres antécédents que vous devez dessiner. Aussi, je suggère que vous utilisiez un JLabel, au lieu d'utiliser la commande drawString, si possible.

+2

+1, je ne sais pas pourquoi les gens continuent à essayer de faire de la peinture personnalisée comme des chaînes de dessin et des images sur un panneau lorsque vous pouvez simplement utiliser un JLabel. Utilisez un gestionnaire de disposition approprié et vous n'avez pas à vous soucier de tous ces petits détails de peinture. – camickr

+0

ouais j'ai essayé un JLabel, mais pour une raison quelconque quand je l'ajoute tout le reste disparaît – user69514

0

Vous pouvez essayer d'utiliser repaint() après comp2d.drawString().

+0

J'ai essayé avant, mais pas de chance – user69514

0

lorsque vous appelez cette COMAND: comp2d.drawString(GetScore(Score),ScoreX,ScoreY);

Vous devez appeler ceci: comp2d.dispose()

parce que toutes les opérations avec comp2d seront appliquées après .dispose()

+0

** De la file d'attente **: Puis-je vous demander d'ajouter s'il vous plaît un peu plus de contexte autour de votre réponse. Les réponses au code seulement sont difficiles à comprendre. Cela aidera le demandeur et les futurs lecteurs à la fois si vous pouvez ajouter plus d'informations dans votre message. – RBT