G
Guest
Gast
hi,
ich hab da ein sehr komisches problem. Evtl. sehe ich den Fehler einfach nicht....
Hier mal der code
Komischerweise wird die paint - Methode 2x aufgerufen und ausgeführt. Aber warum den das ???
Hat jemand vielleicht eine Idee was hier passiert??
ich hab da ein sehr komisches problem. Evtl. sehe ich den Fehler einfach nicht....
Hier mal der code
Code:
public class MyImage extends Component {
Image img;
int x;
int y;
MyImage(String fileName){
try{
img = ImageIO.read(new File("..."));
}catch(Exception e) {e.printStackTrace();}
setSize(16,16);
}
public void paint(Graphics g){
try{Thread.sleep(500);}catch(Exception e){}
setSize(16,16);
((Graphics2D)(g)).drawImage(img,x,y,null);
setLocation(x,y);
System.err.println("Painted Component");
}
}
public class MyFrame extends Frame implements MouseMotionListener,MouseListener
{
private Image dbImage;
private Graphics dbg;
MyImage img;
public void init()
{
setSize(600,600);
img = new MyImage("");
img.addMouseListener(this);
img.x=50;
img.y=50;
add(img);
setVisible(true);
}
public void update (Graphics g)
{
// Initialisierung des DoubleBuffers
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}
// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
//paint (dbg);
img.paint(dbg);
// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
g.drawImage (dbImage, 0, 0, this);
}
(...)
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
img.x=(int) (Math.random()*500+20);
img.y=(int) (Math.random()*500+20);
repaint();
}
}
Komischerweise wird die paint - Methode 2x aufgerufen und ausgeführt. Aber warum den das ???
Hat jemand vielleicht eine Idee was hier passiert??