# Objekt mit Tastatureingabe bewegen



## N302OO7 (15. Juni 2009)

Sers,

wie kann ich ein Objekt z.B. einen Viereck (g.fillRect(20,20,20,20) mit der Tastatur in einem Applet von z.B. 800 x 600 Pixel frei bewegen. Das soll heißen, wenn ich die Pfeiltaste nach oben drücke verschiebt sich das Viereck nach oben also x--.

Wie mache ich das ganze in Java 


greetz


----------



## Xandro (15. Juni 2009)

Moin,

ziemlich simpel...

Da Dein Objekt auf Tastatureingaben reagieren muss, implementierst Du einen KeyListener.
Wird die entsprechende Key-Methode aufgerufen, sei es keyPressed(), keyReleased()..., lässt Du Dein Objekt um die Position versetzt neuzeichnen.

Mit repaint() löschst Du das alte Objekt, was ja noch auf der Fläche gezeichnet war.

Gruß,
Xan


----------



## N302OO7 (15. Juni 2009)

hast du mal einen Quellcode oder ein Beispiel. Habe noch nie was von KeyListener gehört....


----------



## DosCoder (15. Juni 2009)

Hi,
das ist jetzt wohl nicht dein Ernst, oder? Es gibt zuhauf Tutorials zu KeyListenern im Internet: Eins davon:
Java-Insel...

Ciao
DosCoder


----------



## N302OO7 (16. Juni 2009)

Also ich habe mir das ganze gestern und heute nochmal angeschaut, und bin immer noch nicht wirklich weitergekommen. Um ein KeyListener zu bauen brauche ich eine neue Klasse: addKeyListener 
In die Klasse kommt dann die Methode: keyPressed(KeyEvent e) 
e ist dann die Taste die überprüft wrid.

Aber viel weiter bin ich auch nicht gekommen!!

Wie heißt denn die Pfeiltaste (oben) überhaupt

Mein Programm sieht dann ja eigentlich so aus:


```
addKeyListener( new KeyListener() 
{ 
  public void keyTyped( KeyEvent *taste* ) { 
     y++;
  } 
});
```

Geht das einfach so, also wenn die Taste gerückt wird, dann dann y++ gerechnet wird

greetz


----------



## MiMi (16. Juni 2009)

Bissel googeln soll net schaden 

http://www.saar.de/~awa/oop4.htm
sonst google weiter nach Java keylistener



> Geht das einfach so, also wenn die Taste gerückt wird, dann dann y++ gerechnet wird


Probier es aus, so lernt man am meisten.


----------



## N302OO7 (16. Juni 2009)

Bei mir funktioniert das aber nicht so wie im TUT. Mein Fehler/Problem:
Ganz am Anfang steht 
	
	
	



```
public class Smiley1 extends Applet  implements KeyListener
```
 in dem Programm aus dem TUT
bei mit steht 
	
	
	



```
public class test extends Applet implements Runnable
```
Also bei mir ist dass runable, dass brauche ich aber damit mein Programm ausgrführt wird (
	
	
	



```
Thread th = new Thread (this);
```


----------



## MiMi (16. Juni 2009)

Und was steht dir im Weg beides zu implementieren? Sodass du auch die Keylistener methoden in deiner Klasse hast?

Ausserdem ging es doch hauptsaechlich um die Tasten?

```
public void keyPressed(KeyEvent e) {
  if (e.getKeyCode() == e.VK_RIGHT) xa=xa+5;
  if (e.getKeyCode() == e.VK_LEFT) xa=xa-5;
  if (e.getKeyCode() == e.VK_UP) ya=ya-5;
  if (e.getKeyCode() == e.VK_DOWN) ya=ya+5;

 repaint();
}
```


----------



## MiMi (22. Juni 2009)

Bitte schoen hab doch gerne geholfen


----------

