3 votes

Différences entre Java JFrame et JPanel avec Repaint()

J'ai expérimenté avec quelques simples peintures de Graphics2D et j'ai reçu une aide extrêmement précieuse de la communauté ici.

J'ai réussi à résoudre le problème de scintillement de mes "balles rebondissantes" en déplaçant le code hors de la classe principale JFrame et en le plaçant dans un JPanel que j'ai ensuite ajouté à la classe JFrame, est-ce que quelqu'un peut me dire pourquoi cela ferait une telle différence?

5voto

Hovercraft Full Of Eels Points 161146

Lorsque vous dessinez dans la méthode paintComponent d'un JComponent (comme un JPanel), vous utilisez Swing qui utilise la double mise en mémoire tampon par défaut lors du dessin. Dessiner directement dans la méthode paint d'un JFrame ne permettra que le type de dessin AWT puisque le JFrame hérite directement de Frame, un conteneur de poids lourd, et puisque les graphiques AWT n'utilisent pas la double mise en mémoire tampon par défaut, ce qui entraînera une animation saccadée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X