2015-06-10 3 views
0

Я хочу слушать ввод данных с клавиатуры, но я не получаю KeyCode, но KeyListener должны быть во внешнем классеJava внешний KeyListener не отвечает

Main.java:

public class Main { 

    public static void main(String args[]){ 

     new Spielfeld("Spielfeld"); 
     new KeyEventListener(); 
    } 

} 

KeyEventListener.java

public class KeyEventListener implements KeyListener{ 

public KeyEventListener(){ 

} 

@Override 
public void keyPressed(KeyEvent e) { 

    System.out.println(e.getKeyCode()); 

} 

@Override 
public void keyReleased(KeyEvent arg0) {} 

@Override 
public void keyTyped(KeyEvent arg0){} 

}

Извините, я новичок в Java и не знаю, как это исправить ...

+0

Вы читали это? https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html В настоящее время ваш слушатель нигде не зарегистрирован с помощью addKeyListener(). –

ответ

0

Вам нужно добавить keyListener к любому компоненту, такие как JTextField,

Вот хороший пример:

public class KeyEventDemo ... implements KeyListener ... { 
    ...//where initialization occurs: 
     typingArea = new JTextField(20); 
     typingArea.addKeyListener(this); 


    ... 
    /** Handle the key typed event from the text field. */ 
    public void keyTyped(KeyEvent e) { 
     displayInfo(e, "KEY TYPED: "); 
    } 

    /** Handle the key-pressed event from the text field. */ 
    public void keyPressed(KeyEvent e) { 
     displayInfo(e, "KEY PRESSED: "); 
    } 

    /** Handle the key-released event from the text field. */ 
    public void keyReleased(KeyEvent e) { 
     displayInfo(e, "KEY RELEASED: "); 
    } 

Больше на слушателей: Here