Hi,
Ich bin neu hier und auch relativ neu in Java.
Ich habe aber vor mich in naher Zukunft etwas mehr mit Java zu beschäftigen.
Ich habe gestern versucht einen fade Effekt (Bild anfangs transparent wird immer undurchsichtiger) zu machen.
Es ist mir auch ganz gut gelungen, bis auf ein paar Kleinigkeiten.
So das ist mal der Code. Nun meine Frage:
Das Bild fadet, zwar aber natürlich ist das ganze nicht richtig, da das untere Bild ja immer wieder "übermalt" wird.
Eigentlich soll es immer neu gezeichnet soll.
Wenn ich jetz immer mit einem Viereck mit der Hintergrundfarbe übermale flakkert es erwartungsgemäß enorm.
Hat da villeicht jemand eine Ahnung wie ich das lösen könnte?
Ach ja der Code ist nicht komplett von mir selbst geschrieben.
Ein paar Dinge habe ich mir zusmmengesucht wie das erstellen von AlphaComposite.
Ich hab mir dann zwar die AlphaComposite Page angeschaut, aber naja, ...
Meine Zweite Frage ist betreffend eines Iterators und einem HashSet.
Das ist der Konstruktor einer Klasse Primzahlen.
Nur funktioniert sie leider nicht und mir ist bereits auch klar warum.
Ich bekomme in der Zeile
eine java.util.ConcurrentModificationException.
Ich verstehe auch wieso, weil ich während dem laufenden Iterator das HashSet verändere.
Ich könnte zwar an der Stelle wo ich remove den iterator neu erzeugen, nur würde er dann wieder von vorne beginnen und das wäre dann unnötige Rechenleistung.
Also meine Frage: Gibt es sowas wie ein update vom iterator?
Ich hoffe ich habe mich klar genug ausgedrückt.
Wenn ihr irgendetwas wisst, nur her damit.
Ich bin für jede Hilfe dankbar.
thx
blackfeet
Ich bin neu hier und auch relativ neu in Java.
Ich habe aber vor mich in naher Zukunft etwas mehr mit Java zu beschäftigen.
Ich habe gestern versucht einen fade Effekt (Bild anfangs transparent wird immer undurchsichtiger) zu machen.
Es ist mir auch ganz gut gelungen, bis auf ein paar Kleinigkeiten.
Code:
import java.applet.Applet;
import java.awt.*;
public class Fader extends Applet {
public void init(){
this.setBackground(Color.white);
}
public void render(Image img, Graphics2D g2,float trans){
AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, trans);
g2.setComposite(ac);
g2.drawImage(img,50,50,this);
}
public void paint(Graphics g){
g.setColor(Color.white);
Image img = Toolkit.getDefaultToolkit().getImage("bild1.jpg");
for(float i = 0; i<20; i++){
render(img, (Graphics2D) this.getGraphics(), i/20);
try{
Thread.sleep(100);
}catch(Exception e){}
}
}
}
So das ist mal der Code. Nun meine Frage:
Das Bild fadet, zwar aber natürlich ist das ganze nicht richtig, da das untere Bild ja immer wieder "übermalt" wird.
Eigentlich soll es immer neu gezeichnet soll.
Wenn ich jetz immer mit einem Viereck mit der Hintergrundfarbe übermale flakkert es erwartungsgemäß enorm.
Hat da villeicht jemand eine Ahnung wie ich das lösen könnte?
Ach ja der Code ist nicht komplett von mir selbst geschrieben.
Ein paar Dinge habe ich mir zusmmengesucht wie das erstellen von AlphaComposite.
Ich hab mir dann zwar die AlphaComposite Page angeschaut, aber naja, ...
Meine Zweite Frage ist betreffend eines Iterators und einem HashSet.
Code:
Iterator it;
HashSet hs = new HashSet();
for(int i = 2; i<=max;i++){
hs.add(new Integer(i));
}
for(int i = 2; i<=(int)Math.sqrt(max)+1;i++){
it = hs.iterator();
while(it.hasNext()){
Integer zahl = (Integer)(it.next());
if(hs.contains(new Integer(zahl.intValue()*i))){
hs.remove(new Integer(zahl.intValue()*i));
}
}
}
Das ist der Konstruktor einer Klasse Primzahlen.
Nur funktioniert sie leider nicht und mir ist bereits auch klar warum.
Ich bekomme in der Zeile
Code:
Integer zahl = (Integer)(it.next());
Ich verstehe auch wieso, weil ich während dem laufenden Iterator das HashSet verändere.
Ich könnte zwar an der Stelle wo ich remove den iterator neu erzeugen, nur würde er dann wieder von vorne beginnen und das wäre dann unnötige Rechenleistung.
Also meine Frage: Gibt es sowas wie ein update vom iterator?
Ich hoffe ich habe mich klar genug ausgedrückt.
Wenn ihr irgendetwas wisst, nur her damit.
Ich bin für jede Hilfe dankbar.
thx
blackfeet