Hallo zusammen,
ich stehe im Moment vor dem Problem, viele grafische Objekte auf einem JPanel zeichnen zu müssen. Diese Objekte sind editierbar (Größe, Position etc.).
Das Problem dabei ist, dass dieses zeichnen nicht wirklich performant ist. Beim Bewegen einer Figur beispielsweise steigt die Prozessorlast auf 100%.
Folgendermaßen zeichne ich:
Ich habe die einzelnen Objekte gekapselt und denen eine paint-Methode verpasst. Die Objekte, die sich logisch auf dem JPanel befinden, liegen alle in einem Vector. Wird das JPanel neu gezeichnet, zeichne ich erst einen Hintergrund und gehe dann den Vector durch, und rufe für jedes Objekt die Paint-Methode auf (ich übergebe das Graphics-Objekt). Dadurch zeichnen sich die ganzen Figuren auf dem JPanel.
Was ich schon rausgefunden habe, ist, dass jedes Objekt, dass neu gezeichnet werden will, ein repaint des JPanels aufruft und dadurch die gesamte Collection der Objekte durchgegangen wird. Das ist auf jeden Fall nicht performant.
Habt ihr Ideen, wie man effizient auf ein JPanel (oder einem anderen Control) zeichnen kann? Ich weiß leider nicht, wie ich das Zeichnen verbessern kann.
Bin auf Ideen jeglicher Art, Links, Tipps und Tricks oder was auch immer gespannt
.
Gruß,
Fabian
ich stehe im Moment vor dem Problem, viele grafische Objekte auf einem JPanel zeichnen zu müssen. Diese Objekte sind editierbar (Größe, Position etc.).
Das Problem dabei ist, dass dieses zeichnen nicht wirklich performant ist. Beim Bewegen einer Figur beispielsweise steigt die Prozessorlast auf 100%.
Folgendermaßen zeichne ich:
Ich habe die einzelnen Objekte gekapselt und denen eine paint-Methode verpasst. Die Objekte, die sich logisch auf dem JPanel befinden, liegen alle in einem Vector. Wird das JPanel neu gezeichnet, zeichne ich erst einen Hintergrund und gehe dann den Vector durch, und rufe für jedes Objekt die Paint-Methode auf (ich übergebe das Graphics-Objekt). Dadurch zeichnen sich die ganzen Figuren auf dem JPanel.
Was ich schon rausgefunden habe, ist, dass jedes Objekt, dass neu gezeichnet werden will, ein repaint des JPanels aufruft und dadurch die gesamte Collection der Objekte durchgegangen wird. Das ist auf jeden Fall nicht performant.
Habt ihr Ideen, wie man effizient auf ein JPanel (oder einem anderen Control) zeichnen kann? Ich weiß leider nicht, wie ich das Zeichnen verbessern kann.
Bin auf Ideen jeglicher Art, Links, Tipps und Tricks oder was auch immer gespannt
Gruß,
Fabian