# sich bewegendes bild + timer



## dRf (9. Feb 2005)

Nabend

Ich hatte vor ein Bild zum Applet hinzuzufügen und es dann auf der X Koordrinate zu bewegen. 


```
import java.applet.Applet;
import java.awt.*;

public class Bewegung extends Applet {

public void paint(Graphics g) {
Image = bild;
bild = getImage(getDocumentsBase(),"bild.jpg");
g.drawImage(bild,0,0,this);
}
}
```

zeichnet ja ein Bild auf das Applet, welches auch funktioniert. Jetzt hatte ich mir überlegt einfach mit einer For Schleifen die X Koordinate immer zu inkrementieren, jedoch sieht man dann nicht wie sich das bild bewegt.
Daher mein Gedanke, eine Art Timer zu benutzen, welcher in einem bestimmten Zeitintervall die X Koordinate inkrementiert und dann das Bild zeichnet.

Aber wie stelle ichd as mit dem Timer an?

thx in advance


----------



## Illuvatar (9. Feb 2005)

hm benutz nen javax.swing.Timer der ale paar millisekunden ne Instanzvariable verändert, auf die greifst du zu in der paintmethode.


----------



## dRf (9. Feb 2005)

Ja gut aber ich weiß nicht wie. Bin ein totaler Anfänger und weiß nicht wie ich den Timer benutze, dort eine Zählervariabel inkrementiere und dann in einer anderen methode das bild laufen lasse ...


----------



## Illuvatar (9. Feb 2005)

Beispielcode:


```
class A extends Applet implements ActionListener
{
  public void init()
  {
    new Timer (75, this).start();
  }
  int x = 0;
  public void actionPerformed (ActionEvent e)
  {
    x++;
    repaint();
  }
  public void paint (Graphics g)
  {
    g.drawLine (x, 0, x, 100);
  }
}
```


----------



## dRf (9. Feb 2005)

gut thx schonmal 

hab das jetzt so:


```
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.*;

class Test2 extends Applet implements ActionListener 
{ 
  public void init() 
  { 
  	Button k1 = new Button("lala");
  	k1.addActionListener(this);
  	add(k1);
    new Timer (75, this).start(); 
  } 
  int x = 0; 
  public void actionPerformed (ActionEvent e) 
  { 
    x++; 
    repaint(); 
  } 
  public void paint (Graphics g) 
  { 
    g.drawLine (x, 0, x, 100); 
  } 
}
```

aber er zeigt mir noch einen fehler:

cannot finmd symbol constructor Timer(int, Test2);


----------



## Wildcard (9. Feb 2005)

```
import javax.swing.Timer;
```


----------



## Illuvatar (10. Feb 2005)

Ja, in java.util gibts auch einen Timer (und in java.management.timer auch  ), da muss man aufpassen. Der in java.util ist aber eher für komplexere Sachen da.


----------

