Objekt mit Tastatureingabe bewegen

N302OO7

Mitglied
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
 
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
 
Hi,
das ist jetzt wohl nicht dein Ernst, oder? Es gibt zuhauf Tutorials zu KeyListenern im Internet: Eins davon:
Java-Insel...

Ciao
DosCoder
 
Zuletzt bearbeitet:
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:

Code:
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
 
Bei mir funktioniert das aber nicht so wie im TUT. Mein Fehler/Problem:
Ganz am Anfang steht
Code:
public class Smiley1 extends Applet  implements KeyListener
in dem Programm aus dem TUT
bei mit steht
Code:
public class test extends Applet implements Runnable
Also bei mir ist dass runable, dass brauche ich aber damit mein Programm ausgrführt wird (
Code:
Thread th = new Thread (this);
 
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?
Java:
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();
}
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück