Hallo,
Also...
Ich habe ein JPanel mit einer Methode paint(), auf der einige Sachen (ein KoordinatenSystem) gezeichent werden.
In der Methode paint() wird eine weitere Funktion aufgerufen, die neue JPanels added, die wiederum eine paint() Methode haben.
Das funktioniert soweit ganz gut (das ganze ist ein Graphenprogramm, die geaddeten panels sind die graphen); aber wenn ich das Fenster minimiere und wieder herstelle, wird nur das Koordinatensystem gezeichnet.
Sobald ich ein refresh mache, in dem ich die paint() methode neu aufrufe, erscheinen die graphen wieder. auch wenn das Fenster an einer stelle überlagert wurde, muss man ein refresh machen, um die graphen wiederherzustellen.
Die Paint methode wird doch aber eigentlich jedesmal von selber aufgerufen, wenn ich ein Fenster wiederherstelle, oder? Durch repaint().... und etwas anderes tue ich mit dem Programm auch nicht, wenn ich refreshe... Wo liegt also das Problem?
Auch wenn ich drucken will, und die PrintComponent-Methode nehme, wird nur das Koordinatensystem angezeigt...
Ich weiß nicht woran das liegt, da auch hierbei doch die Paintmethode verwendet wird, bei der die Graphen gezeichnet und geaddet werden müssten...
Weiß wer, was man da machen kann?
Mfg Markus
PS: hier der Code der paint-Methode (gekürzt);
Also...
Ich habe ein JPanel mit einer Methode paint(), auf der einige Sachen (ein KoordinatenSystem) gezeichent werden.
In der Methode paint() wird eine weitere Funktion aufgerufen, die neue JPanels added, die wiederum eine paint() Methode haben.
Das funktioniert soweit ganz gut (das ganze ist ein Graphenprogramm, die geaddeten panels sind die graphen); aber wenn ich das Fenster minimiere und wieder herstelle, wird nur das Koordinatensystem gezeichnet.
Sobald ich ein refresh mache, in dem ich die paint() methode neu aufrufe, erscheinen die graphen wieder. auch wenn das Fenster an einer stelle überlagert wurde, muss man ein refresh machen, um die graphen wiederherzustellen.
Die Paint methode wird doch aber eigentlich jedesmal von selber aufgerufen, wenn ich ein Fenster wiederherstelle, oder? Durch repaint().... und etwas anderes tue ich mit dem Programm auch nicht, wenn ich refreshe... Wo liegt also das Problem?
Auch wenn ich drucken will, und die PrintComponent-Methode nehme, wird nur das Koordinatensystem angezeigt...
Ich weiß nicht woran das liegt, da auch hierbei doch die Paintmethode verwendet wird, bei der die Graphen gezeichnet und geaddet werden müssten...
Weiß wer, was man da machen kann?
Mfg Markus
PS: hier der Code der paint-Methode (gekürzt);
Code:
public void paint(Graphics g){
super.paintComponent(g);
super.paintBorder(g);
paintGraphs(); //Ruft Methode auf, die ein JPanel addet auf dessen graphic wieder gezeichnet wird
super.paintComponents(g);
}