J'ai cherché le problème, mais tout le monde semble avoir des problèmes avec la mise à jour graphique trop lent.Java Graphics mise à jour trop rapide
Pour présenter ma situation:
J'ai un JFrame que je mets à plein écran, en utilisant un mode d'affichage compatible. Dans le JFrame, j'ai un couple de JPanels et JButtons ... Sur l'un des JPanels, je dessine des objets en mouvement qui ont besoin d'être mis à jour.
Je suis en train de mettre à jour les graphiques comme ceci: valider et repeindre le JFrame, puis revalider et repeindre le JPanel correspondant. Les graphiques sont mis à jour trop rapidement. (Je dois mentionner que sur le JPanel je surcharge la méthode paintComponent). J'ai essayé d'utiliser BufferStrategy sur le JFrame, mais cela m'empêchera de montrer les JPanels et les JButtons (je ne sais pas pourquoi). Je profite également de cette occasion pour demander à certains d'entre vous si vous pouvez faire une distinction claire entre peindre, valider, repeindre, revalider, invalider, etc ... tous les tutoriels à peine gratter la surface.
Vous ne devez revalider lorsqu'un composant comme cela a été ajouté/retiré de son parent. Cela n'a rien à voir avec la peinture. Veuillez expliquer ce que vous essayez de faire, et montrer une tentative ou du moins ce que vous avez déjà fait. –
Pouvez-vous expliquer pourquoi vous pensez que la mise à jour est trop rapide? – FelixM
La raison pour laquelle je pense que la mise à jour est trop rapide est que si j'utilise un JFrame normalement défini (nouveau JFrame, et pas un plein écran avec un mode d'affichage) cela fonctionne normalement (j'ai des boules qui bougent dans un labirint). Le code ressemble à ceci: void rollBalls() { f.validate(); f.repaint(); updateBallsSpecs(); p.revalidate(); p.repaint(); f est le JFrame et p est le JPanel dans le JFrame.La méthode de mise à jour des spécifications met simplement à jour la spécification des billes (coordonnées dans un tableau), les coordonnées que j'utilise dans la méthode paintComponent dans la classe JPanel. – user3577465