Ich möchte in einem Applet den druck der Pfeiltasten mit einem KeyListener abfangen. Anschließend soll in einem Textfeld die Richtung ausgegeben werden.
Ich habe mich dazu auch schon hier im Forum und unter http://java.sun.com/j2se/1.5.0/docs/api/index.html belesen. Leider hat das nicht mein Problem gelöst. Ich wäre dankbar wenn mir jemand helfen könnte.
Wenn ich nun die Zeile:
public class tasten extends Applet implements KeyListener
mit abstact vor class tasten erweitere, dann compeliert er es aber das Applet kann mir anschließend nicht angezeigt werden. Bin gerade ziemlich ratlos. Ich habe ähnliche Probleme hier gefudnen aber alles was ich fand hat mir nicht recht weitergeholfen.
Hier mal der Code:
Code:
import java.awt.*;
import java.awt.event.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.applet.*;
public class tasten extends Applet implements KeyListener
{
TextField tf1;
public void init()
{
tf1=new TextField("",10);
tf1.setEditable(false);
add(tf1);
validate();
addKeyListener(this);
}
public void KeyPressed (KeyEvent e)
{
switch(e.getKeyCode())
{ //e.getID
case KeyEvent.VK_LEFT:
tf1.setText("links");
break;
case KeyEvent.VK_RIGHT:
tf1.setText("rechts");
break;
case KeyEvent.VK_UP:
tf1.setText("unten");
break;
case KeyEvent.VK_DOWN:
tf1.setText("oben");
break;
default:
tf1.setText("Etwas anderes gedrückt");
}
}
}
public class Tasten extends Applet implements KeyListener {
TextField tf1;
public void init() {
tf1=new TextField("",10);
tf1.setEditable(false);
add(tf1);
validate();
addKeyListener(this);
requestFocus();
}
public void paint(Graphics g) {
super.paint(g);
requestFocus();
}
public void keyTyped (KeyEvent e) {}
public void keyReleased (KeyEvent e) {}
public void keyPressed (KeyEvent e) {
switch(e.getKeyCode()) {
case KeyEvent.VK_LEFT:
tf1.setText("links");
break;
case KeyEvent.VK_RIGHT:
tf1.setText("rechts");
break;
case KeyEvent.VK_UP:
tf1.setText("unten");
break;
case KeyEvent.VK_DOWN:
tf1.setText("oben");
break;
default:
tf1.setText("Etwas anderes gedrückt");
}
}
Ich selbst verstehe allerdings nicht, wieso ich in der paint-Methode
den Focus grabschen muß, warum reicht es nicht aus, dieses in
der init-Methode zu machen? ???:L
Ah jetzt funktioniert es. Danke. Mit setFocus hatte ich auch nocht etwas rumprobiert, aber ohne wirklichen erfolg. War halt nicht die richtige Kombination. Jetzt läuft es und ich kann weiter machen.