Hi,
ich versuche grade eine GUI mit DoubleBuffer zu machen.
Dazu habe ich mir nach diesem Schema einen DoubleBuffer für mein JFrame gebaut:
BufferStrategy (Java Platform SE 6)
In dem von mir geschrieben Layout-Manager wird dann für jedes Objekt, dass dargestellt werden soll eine updateSizePosition() Methode aufgerufen. Bei den ImageIcons, die in den JLabels sind muss dazu die Methode setIcon(new ImageIcon(...)) mit getScaledInstance() aufgerufen werden. Dabei wird jedoch das betreffende Label direkt auf den Bildschirm geschrieben und nicht erst in den BackgroundBuffer wie gewünscht. Das Ergebnis ist ein sehr hochfrequentes Filmmern, weil die Label anschließend von den ForegroundBuffer überschrieben werden, im nächsten sich jedoch alles wiederholt.
Wie kann ich verhindern, dass die Label direkt auf den Bildschirm geschrieben werden?
Kann ich irgendwie den PaintStream oder so auf den Background-Buffer umleiten?
Danke schonaml.
Max
ich versuche grade eine GUI mit DoubleBuffer zu machen.
Dazu habe ich mir nach diesem Schema einen DoubleBuffer für mein JFrame gebaut:
BufferStrategy (Java Platform SE 6)
In dem von mir geschrieben Layout-Manager wird dann für jedes Objekt, dass dargestellt werden soll eine updateSizePosition() Methode aufgerufen. Bei den ImageIcons, die in den JLabels sind muss dazu die Methode setIcon(new ImageIcon(...)) mit getScaledInstance() aufgerufen werden. Dabei wird jedoch das betreffende Label direkt auf den Bildschirm geschrieben und nicht erst in den BackgroundBuffer wie gewünscht. Das Ergebnis ist ein sehr hochfrequentes Filmmern, weil die Label anschließend von den ForegroundBuffer überschrieben werden, im nächsten sich jedoch alles wiederholt.
Wie kann ich verhindern, dass die Label direkt auf den Bildschirm geschrieben werden?
Kann ich irgendwie den PaintStream oder so auf den Background-Buffer umleiten?
Danke schonaml.
Max