Ich schreibe gerade eine Bildergalerie, die automatisch durchlaufen soll. Dummerweise hat er mir immer das erste Bild massakriert, klaro: darauf habe ich fröhlich geschrieben, deswegen war die Instanz natürlich immer geändert.
Prinzipiell läuft das:
In init() habe ich jetzt versucht, eine Kopie zu machen, aber das wohl nicht richtig, das Problem bleibt bestehen: die Bilder rödeln durch, aber das letzte wird doppelt solange angezeigt, bevor das zweite wieder kommt, d. h. das Objekt wird immer noch verändert. Wie bekomme ich das erste Bild geklont? Oder mache ich im Ansatz was falsch?
Prinzipiell läuft das:
Java:
public void init() {
this.dim = this.getSize();
this.galerie = new Galerie();
this.setSize(800,600);
BufferedImage firstImage = this.galerie.getImage();
WritableRaster firstRaster = firstImage.getRaster();
WritableRaster newRaster = firstImage.copyData(firstRaster);
this.activeImage = new BufferedImage(firstImage.getColorModel(), newRaster, true, null);
this.runner = new Thread(this);
this.runner.start();
}
public void run() {
System.out.println("next");
Crossover crossover;
while(true) {
try {
Thread.sleep(200);
} catch (Exception e) {
throw new Error(e.getMessage());
}
this.galerie.increment();
crossover = new CrossoverPixelate(this.activeImage, this.galerie.getImage(), this);
crossover.execute();
}
}
public void paint(Graphics g) {
super.paint(g);
g.drawImage(this.activeImage,0,0, this);
}
In init() habe ich jetzt versucht, eine Kopie zu machen, aber das wohl nicht richtig, das Problem bleibt bestehen: die Bilder rödeln durch, aber das letzte wird doppelt solange angezeigt, bevor das zweite wieder kommt, d. h. das Objekt wird immer noch verändert. Wie bekomme ich das erste Bild geklont? Oder mache ich im Ansatz was falsch?