2009-10-19 9 views
5

Je dessine un tas de primitives en utilisant Java2D sur l'écran et je reçois beaucoup de larmes/scintillement.Comment faire un double tampon dans Java2D?

Comment est-ce que je peux activer/utiliser le double-buffering afin qu'il dessine hors de l'écran puis montre le tout?

Répondre

1

Quelques conseils pour utiliser efficacement mise en mémoire tampon en tant que programmeur view

et certains testing programs sont avaliable

1

1) Vous créez une instance BufferedImage. Pour des performances maximales, vous devez vous assurer que L'image mise en mémoire tampon utilise le même modèle que l'écran que vous visualisez.

Vérifiez cela pour la création d'un BufferedImage en utilisant le Graphics2D passé à la méthode de peinture d'un composant (il y a plusieurs façons de créer des images tamponnées, ce lien entre quelques ...)

[http://www.exampledepot.com/egs/java.awt.image/CreateBuf.html][1]

2) Vous obtenez le Graphics [getGraphics()] associé à l'image tamponnée, le transtypez en Graphics2D si vous en avez besoin et restituez vos primitives à l'image tamponnée en invoquant des commandes sur cet objet graphique (pouvez également passer cet objet graphique aux composants se peindre sur votre image tamponnée).

3) Vous dessinez l'image tamponnée à votre composant en remplaçant c'est la méthode de peinture et d'appeler une variante de drawImage() sur l'argument Graphics2D passé au composant. Si vous avez besoin d'un code d'échantillon ...