Performance-Problem beim Überschreiben von paintComponent()

carolin

Mitglied
Hallo,

ich habe ein sehr übles Performance-Problem und leider keine Ahnung wie ich das lösen soll.
Folgendes:

Ich habe ein JPanel, das die paintComponent() überschreibt (an dieser Stelle liegt auch das Problem). Dort wird
a) ein JPG als Hintergrundbild hinzugefügt
b) zwischen JPanels, die per dnd auf dem "großen" JPanel verschoben werden können, grüne Verbindungslinien gezeichnet, wenn sie in einer Beziehung zueinander stehen. Ob eine Beziehung besteht wird auf sehr komplizierte Art überprüft. Die Linien müssen auch bestehen bleiben, wenn meine "kleinen" JPanel verschoben werden. Wenn ich diese Logik rausnehme, dann ändert sich jedoch nichts an meinem Problem.

Hat jemand eine Idee wie ich das Hintergrundbild und die Linien anders in mein JPanel bekomme ohne diese Performance-Probleme?

Danke schonmal.

Gruß,
Carolin
 
Hat jemand eine Idee wie ich das Hintergrundbild und die Linien anders in mein JPanel bekomme ohne diese Performance-Probleme?
Naja, was heißt hier "anders", du hast ja noch gar nicht geschildert wie diese nun genau aufs Panel kommen 🙂

Ein Problem könnte beispielsweise sein, dass du innerhalb der paintComponent jedes mal ImageIO.read(...) o.ä. aufrufst, also jedes mal das Bild neulädst. Das ist sicherlich nicht notwendig und könnte einmal vorab passieren. Wenn du das eh schon tust, wäre dennoch gut zu wissen wie das Ganze jetzt genau aussieht.
Und wie genau äußert sich denn dein "Performance-Problem" ? Was passiert/ passiert nicht ? ;/
 
Ich habe nochmal geschaut und mein updateUI() rausgenommen und das hat das Problem gelöst.
(Das Problem hat sich übrigens darin geäußert, dass meine CPU-Auslastung auf 50% hochgegangen ist.)
Danke! 🙂
 

Zurück
Oben