Speedrunner
Grünschnabel
Hi,
mein Projekt sieht folgendermaßen aus:
Ein Plotter mit Koordinatensystem (ein JPanel) liegt auf einen JFrame. Das JPanel Plotter hat eine Methode zeichnePunkt() mit der man von
außerhalb ( z.B. wenn man einen Knopf auf der Gui drückt) einen Punkt zeichnen lassen kann. Ich benutze dazu also nicht die paint Methode.
Um zeichnen zu können, muss ich bei jedem Aufruf der Methode zeichnePunkt() das aktuelle Graphics g mit this.getGraphics() holen.
Das Problem ist, dass this.getGraphics() viel Zeit kostet, sodass es bei 100.000 Punkten schon 1 sec dauert.
Außerdem wenn ich das Projekt zu einer .jat Datei mache, zeichnet er nicht nur innehalb des Panels, sondern auf dem ganzen JFrame.
Das heißt z.B. wenn ich ein Punkt mit den Koordinaten -10/-10 (also tatsächlich außerhalb des Panels) habe, wird dieser auf das Fenster gemalt anstatt auf das Panel.
Durch this.getGraphics bekomme ich dann irgendwie Graphics g des ganzen Fensters. Aber nur bei der .jar File.
Gibt es eine elegantere Möglichkeit außerhalb der Paint-Methode Sachen auf das JPanel zu zeichnen ohne auf this.getGraphics() zurückzugreifen zu müssen?
mein Projekt sieht folgendermaßen aus:
Ein Plotter mit Koordinatensystem (ein JPanel) liegt auf einen JFrame. Das JPanel Plotter hat eine Methode zeichnePunkt() mit der man von
außerhalb ( z.B. wenn man einen Knopf auf der Gui drückt) einen Punkt zeichnen lassen kann. Ich benutze dazu also nicht die paint Methode.
Um zeichnen zu können, muss ich bei jedem Aufruf der Methode zeichnePunkt() das aktuelle Graphics g mit this.getGraphics() holen.
Das Problem ist, dass this.getGraphics() viel Zeit kostet, sodass es bei 100.000 Punkten schon 1 sec dauert.
Außerdem wenn ich das Projekt zu einer .jat Datei mache, zeichnet er nicht nur innehalb des Panels, sondern auf dem ganzen JFrame.
Das heißt z.B. wenn ich ein Punkt mit den Koordinaten -10/-10 (also tatsächlich außerhalb des Panels) habe, wird dieser auf das Fenster gemalt anstatt auf das Panel.
Durch this.getGraphics bekomme ich dann irgendwie Graphics g des ganzen Fensters. Aber nur bei der .jar File.
Gibt es eine elegantere Möglichkeit außerhalb der Paint-Methode Sachen auf das JPanel zu zeichnen ohne auf this.getGraphics() zurückzugreifen zu müssen?
Zuletzt bearbeitet: