Ich hoffe dass es hier her gehört, da es ein Bestandteil von JFrame ist, wenn nicht dann bitte nicht böse sein zeja bzw. Thomas.
Also, bisher habe ich immer so gebuffert, dass ich die update(java.awt.Graphics g) überschrieben habe. Darin hat er als Klassenvariable ein Bild erstellt/gespeichert, dem Inhalt der Paint daraufgezeichnet und dieses dann als einziges gezeichnet.
Ging gut, nur dass er mittlerweile relativ lange braucht, da er dem Inhalt von 2 Listen zeichnen muss. Deshalb ist ab und zu schon mal ein "flimmern" durchgekommen, also man hat einen kurzem Zeitraum dem weißen Screen durchgesehen.
Also bin ich jetzt mal auf BufferStrategy umgestiegen. In der main() habe ich folgende Zeile hinzugefügt:
jframe.createBufferStrategy(4);
und in der Klasse, die zeichnet, wurde aus
Eigendlich das mit dem Bildern ganz hervorragend, ich habe bis jetzt nichts durchgesehen.
Aber ich verwende auch die Methode drawString von Graphics, und da happert es ein wenig. Leider zeigt er mir diese sehr oft nicht an. Von 20 repaints vielleicht 1 mal, also es flimmert auch nur kurz auf.
Kann mir wer bitte sagen woran das liegen könnte?
Also, bisher habe ich immer so gebuffert, dass ich die update(java.awt.Graphics g) überschrieben habe. Darin hat er als Klassenvariable ein Bild erstellt/gespeichert, dem Inhalt der Paint daraufgezeichnet und dieses dann als einziges gezeichnet.
Ging gut, nur dass er mittlerweile relativ lange braucht, da er dem Inhalt von 2 Listen zeichnen muss. Deshalb ist ab und zu schon mal ein "flimmern" durchgekommen, also man hat einen kurzem Zeitraum dem weißen Screen durchgesehen.
Also bin ich jetzt mal auf BufferStrategy umgestiegen. In der main() habe ich folgende Zeile hinzugefügt:
jframe.createBufferStrategy(4);
und in der Klasse, die zeichnet, wurde aus
Java:
public void run(Variables v, JFrame jframe)
{
Graphics g = jframe.getGraphics();
MUC_Variables variables = (MUC_Variables) v;
this.paintRahmen(variables, g, jframe);
this.paintTerrain(variables, g, jframe);
this.paintUnits(variables, g, jframe);
this.paintCursor(variables, g, jframe);
this.paintCurrentUnitInfos(variables, g, jframe);
}
Java:
public void run(Variables v, JFrame jframe)
{
BufferStrategy b = jframe.getBufferStrategy();
Graphics g = b.getDrawGraphics();
MUC_Variables variables = (MUC_Variables) v;
this.paintRahmen(variables, g, jframe);
this.paintTerrain(variables, g, jframe);
this.paintUnits(variables, g, jframe);
this.paintCursor(variables, g, jframe);
this.paintCurrentUnitInfos(variables, g, jframe);
b.show();
}
Eigendlich das mit dem Bildern ganz hervorragend, ich habe bis jetzt nichts durchgesehen.
Aber ich verwende auch die Methode drawString von Graphics, und da happert es ein wenig. Leider zeigt er mir diese sehr oft nicht an. Von 20 repaints vielleicht 1 mal, also es flimmert auch nur kurz auf.
Kann mir wer bitte sagen woran das liegen könnte?
Zuletzt bearbeitet: