Speedrunner
Grünschnabel
hi,
ich wollte einen Funktionsplotter programmieren und habe mich entschieden als Grundlage ein JPanel zu verwenden. Das Koordinatensystem wird direkt auf dem Panel gezeichnet. Das Panel liegt dann auf einer GUI. Mit Attributen habe ich z.B. den Anfang der x bzw y Achse oder den Umrechnungsfaktor, wie viele Einheiten ein Pixel ist bestimmt. Der Plotter geht in der hinsicht also.
Wenn ich aber eine Iteration zeichnen möchte rufe ich die Methode zeichnePunkt(double x, double y, Color farbe) vom Plotter in einer Methode einer Steuerungsklasse auf.
Eine Steuerungsklasse ruft Zeichnepunkt z..B. 100000-mal auf. Die Methode der Steuerungsklasse wird aufgerufen, wenn man den Go button auf der Gui drückt.
Dabei benutze ich Graphics g um den Punkt zu zeichnen. Nun kommt es aber vor, dass mitten in den 100000-mal unregelmäßig das Panel wieder ganz weiß wird und die davorgezeichneten Sachen (Punkt als auch die X/Y-Achse verschwinden. Dies passiert auch manchmal, nachdem die Steuerung die 100000 Iterationen fertig ausgeführt hat.
Die Paint-Methode habe ich nicht überschrieben, sondern die Achsen werden durch die Methode "public void zeichnen() " gezeichnet, die wiederum von anderen Klassen (der GUI) aufgerufen wird.
Woran könnte es liegen, dass es immer weiß wird?
ich wollte einen Funktionsplotter programmieren und habe mich entschieden als Grundlage ein JPanel zu verwenden. Das Koordinatensystem wird direkt auf dem Panel gezeichnet. Das Panel liegt dann auf einer GUI. Mit Attributen habe ich z.B. den Anfang der x bzw y Achse oder den Umrechnungsfaktor, wie viele Einheiten ein Pixel ist bestimmt. Der Plotter geht in der hinsicht also.
Wenn ich aber eine Iteration zeichnen möchte rufe ich die Methode zeichnePunkt(double x, double y, Color farbe) vom Plotter in einer Methode einer Steuerungsklasse auf.
Eine Steuerungsklasse ruft Zeichnepunkt z..B. 100000-mal auf. Die Methode der Steuerungsklasse wird aufgerufen, wenn man den Go button auf der Gui drückt.
Dabei benutze ich Graphics g um den Punkt zu zeichnen. Nun kommt es aber vor, dass mitten in den 100000-mal unregelmäßig das Panel wieder ganz weiß wird und die davorgezeichneten Sachen (Punkt als auch die X/Y-Achse verschwinden. Dies passiert auch manchmal, nachdem die Steuerung die 100000 Iterationen fertig ausgeführt hat.
Die Paint-Methode habe ich nicht überschrieben, sondern die Achsen werden durch die Methode "public void zeichnen() " gezeichnet, die wiederum von anderen Klassen (der GUI) aufgerufen wird.
Woran könnte es liegen, dass es immer weiß wird?
Code:
public void zeichnePunkt(double x, double y, Color farbe){
Graphics g=this.getGraphics();
g.setColor(farbe);
g.drawLine(xKoordinate(x), yKoordinate(y), xKoordinate(x), yKoordinate(y)); //Koordinaten müssen umgerechnet werden
}
Zuletzt bearbeitet: