Hallo zusammen,
ich zeichne auf der Graphics eines JPanels relativ viele Objekte deren Berechnung auch relativ lange dauert. Wenn alles gezeichnet ist kann man mittels Maus klicken und ziehen einen Rechteck-Bereich selektieren. Da das Zeichnen der Selektion auf dem selben Panel stattfindet und daher in der selben paintComponent werden jedesmal auch die anderen Objekte neu gezeichnet und berechnet.
Daher habe ich mir ein Image erstellt, auf das ich einmal zeichne, wenn mit der Maus links geklickt wird (Start einer Selektion):
Das habe ich irgendwo hier im Forum gefunden und funktioniert schon viel besser (schneller). Allerdings wird auch so zum Beginn der Selektion erstmal nochmal neu gezeichnet, was einen ordentlichen Ruckler zur Folge hat, bis dann mal was passiert.
Wie kann ich mir das sparen? In der paintComponent gleichzeitig auf die Graphics des Image zeichnen?
Ein Versuch mittels GraphicsVonImage = GraphicsVonPanel hat leider nicht funktioniert. Das Image war schwarz.
Schon mal Danke für jeden Vorschlag!
ich zeichne auf der Graphics eines JPanels relativ viele Objekte deren Berechnung auch relativ lange dauert. Wenn alles gezeichnet ist kann man mittels Maus klicken und ziehen einen Rechteck-Bereich selektieren. Da das Zeichnen der Selektion auf dem selben Panel stattfindet und daher in der selben paintComponent werden jedesmal auch die anderen Objekte neu gezeichnet und berechnet.
Daher habe ich mir ein Image erstellt, auf das ich einmal zeichne, wenn mit der Maus links geklickt wird (Start einer Selektion):
Code:
captureImg = new BufferedImage(this.getWidth(), this.getHeight(), BufferedImage.TYPE_INT_RGB );
Graphics gpa = captureImg.createGraphics();
this.paint(gpa);
gpa.dispose();
Wie kann ich mir das sparen? In der paintComponent gleichzeitig auf die Graphics des Image zeichnen?
Ein Versuch mittels GraphicsVonImage = GraphicsVonPanel hat leider nicht funktioniert. Das Image war schwarz.
Schon mal Danke für jeden Vorschlag!