Zählen, wie oft etwas gezeichnet wird

Jack159

Bekanntes Mitglied
Hallo,

Ich habe ein Programm, bei dem mir 49 Vierecke gezeichnet werden sollen. Davon sollen allerdings x Vierecke keine bloßen Vierecke sein, sondern ein Bild enthalten. x soll bei jedem Programmstart zufällig generiert werden (Ziel des ganzen ist ein Ratespiel, wo die Bilder gezählt werden müssen).
Das ganze geschieht komplett in der painComponent().

Optisch funktioniert das zwar auch, allerdings wenn ich jedes mal eine info ausgeben lasse, wenn er ein Bild malt, dann stimmt das letzendlich meist nicht mit der wirklichen Anzahl der gezeichneten Bilder überein....Z.b. sagt er mir dann "10x Bild gezeichnet" obwohl nur 2 gezeichnet wurden...

Mir ist klar, dass wenn ich das Fenster z.b. vergrößer/verkleiner usw. jedes mal die paintComponent aufgerufen wird und somit meine gesamte Schleife zum zeichnen. Aber wenn ich doch das Programm nur 1x starte und das Fenster unberührt lasse, dann sollte er die paintComponent doch auch nur 1x aufrufen oder nicht?
 
Nein, wie und wie oft die Methode ausgeführt wird kannste nich wirklich so einfach kontrollieren.
Daher rührt ja auch der hier schon so oft erwähnte Ratschlag, keine logischen Operationen innerhalb der paintComponent zu verwenden.

Berechne deine Bildchen seperat, zeichne sie eventuell sogar auf ein BufferedImage und in der paintComponent wird dann nur gezeichnet.

Der Vorteil:
-es ist egal, wie häufig repaint durchläuft, das resultat ist immer aktuell.
-wenn sich etwas ändert, berechnest du das ergebnis neu und rufst dann einfach repaint auf.
 

Neue Themen


Zurück
Oben