Schnubbel
Mitglied
Tach,
folgende Problematik:
Ich habe ein kleines Java Projekt. Grafische ausgabe erfolgt über die AWT, ich benutze ein kleines Eigenbau-DoubleBuffering, folgedessen male ich in meinen Funktionen auf ein Bild, und zeichne das Bild in der paint() auf das Applet.
Was ich vorhabe ist, das Gezeichnete zu einem bestimmten Moment zu speichern, dann weiterzeichnen zu können und das gespeicherte wieder laden zu können, dass die seit der Speicherung vollzogenen änderungen wieder gelöscht werden. DIe Speicherung soll nicht übers Dateisystem geschehen, sondern nur in eine Variable - trotzdem bekomme ich es nicht hin.
Hier ein paar Code-Fetzen zu dem Thema:
Man kann bei diesem Code laden und speichern wie man lustig ist, es wird immer das alte Bild angezeigt und auch darauf weitergezeichnet.
Wahrscheinlich ist der Fehler ziemlich dämlich, und ich sitze nur schon zu lange davor, um ihn selbst zu finden, wäre nett wenn mir jemand weiterhelfen würde!
Danke
TiM
folgende Problematik:
Ich habe ein kleines Java Projekt. Grafische ausgabe erfolgt über die AWT, ich benutze ein kleines Eigenbau-DoubleBuffering, folgedessen male ich in meinen Funktionen auf ein Bild, und zeichne das Bild in der paint() auf das Applet.
Was ich vorhabe ist, das Gezeichnete zu einem bestimmten Moment zu speichern, dann weiterzeichnen zu können und das gespeicherte wieder laden zu können, dass die seit der Speicherung vollzogenen änderungen wieder gelöscht werden. DIe Speicherung soll nicht übers Dateisystem geschehen, sondern nur in eine Variable - trotzdem bekomme ich es nicht hin.
Hier ein paar Code-Fetzen zu dem Thema:
Code:
//Deklarationen in der Klasse
private Graphics gc, gc_copy;
private Image img;
public void init() {
img = createImage(breite, hoehe);
gc = img.getGraphics();
}
public void paint(Graphics gc) {
if ( img != null )
gc.drawImage( img, 0, 0, this );
}
public void speichern() {
gc_copy = gc.create();
//im manual stand, gc.create() würde einen Klon des objektes ausgeben...gc_copy = gc hilft genau so wenig
repaint();
}
public void laden() {
gc = gc_copy;
//der Kommentar von oben (create()) gilt auch für hier
repaint();
}
Wahrscheinlich ist der Fehler ziemlich dämlich, und ich sitze nur schon zu lange davor, um ihn selbst zu finden, wäre nett wenn mir jemand weiterhelfen würde!
Danke
TiM