Hur kopplar jag på en tangentlyssnare på ett fönster?
Jag har en vanlig klass med en mainmetod. I mainmetoden ritas det ut lite saker, och när jag kör manuellt, exempelvis t1.walk() så går det utmärkt, men jag vill att den skall köra t1.walk() när en speciell knapp trycks ner.
Om jag försöker köra exempelvis
public class Wee implements ActionListener, eller
public class Wee implements KeyListener
Så får jag följande fel:
Wee should be declared abstract; it does not define keyPressed(java.awt.event.KeyEvent) in Wee
Lyssnar interface är ganska jobbiga för man måste överlagra alla "tomma" metoder. Kör KeyAdapter i stället men eftersom det är en klass så ärver man den istället för implementerar.
Sen för att få bort allt strul med att blanda in statiska och icke statiska metoder så skriv en vanlig konstruktor där du skapar fönster, kopplar på lyssnaren etc .. plus att bara skriva new Wee() i main.
Lägg till metoden
public void keyTyped(KeyEvent ev) {
// det som ska hända när du trycker på knappar
}
i klassen och för att koppla in lyssnaren gör du en
komponenten.addKeyListener(this);
Det märkliga är nu att när jag anropar waitForEvent och rör/trycker på musen så returneras en 2:a, men när jag trycker på knappar på tangentbordet så returneras ingenting och när jag försöker avläsa getKey() så returnerar den heller ingenting.
Hur kan jag koppla en lyssnare till mitt fönster när den redan lyssnar, men vägrar inse att det är tangentbordet den skall lyssna på?