2015-04-30 5 views
-1

Итак, когда я запускаю программу, он не распечатывает переменную kod. Я должен addKeyListener(); Но я не знаю, где и как?Как добавить прослушиватель клавиш

Может кто-нибудь, пожалуйста, скажите мне, как я должен добавить keyListener в мой основной класс или где-нибудь, я должен добавить его ???

import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import java.awt.event.KeyEvent; 
import java.awt.event.KeyAdapter; 


public class YuGiOh { 



public static void main(String[] args){ 

    JFrame frame = new JFrame(); 
    JPanel panel = new JPanel(); 
    JLabel l1 = new JLabel("LABEL"); 

    frame.setSize(200,200); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setVisible(true); 
    frame.addKeyListener(new tipkovnica()); 

    panel.setLayout(null); 

    frame.add(panel); 

    l1.setBounds(80,100,100,20); 
    panel.add(l1); 

} 
} 

class tipkovnica extends KeyAdapter{ 


public void keyBinder(KeyEvent e){ 

int kod = e.getKeyCode(); 

System.out.println(kod); 

} 

public void keyReleased(KeyEvent e){ 



} 

} 
+0

Я не уверен, что вы просите или пытаетесь сделать. См. Рекомендации по [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask). – screenmutt

+2

Вы можете рассмотреть возможность использования [KeyBindings] (https://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html), а не KeyListener – copeg

ответ

1

KeyListener() требует, чтобы компонент имел фокус. Попробуйте добавить:

frame.requestFocus();