필요한 모든 메소드를 구현하고 "implements KeyListener"를 추가하고 addKeyListener 및 setFocus (true)를 추가했지만 keyresponses를 얻지 못했습니다. JFrame에는 내가 만든 캔버스 클래스가 포함되어 있습니다. 다음은 창 클래스의 생성자입니다.Keylistener를 JFrame에 추가하는 방법
setBounds(0,0, width, height);
setIgnoreRepaint(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
add(MainCanvas.Instance());
this.getContentPane().addKeyListener(this);
pack();
setVisible(true);
if (thread == null)
{
thread = new Thread(this);
}
thread.start();
키 수신기를 콘텐츠 창 대신 MainCanvas.Instance()에 추가하면 어떻게됩니까? – MeBigFatGuy
1)'Canvas'를 의미하는 경우'JComponent' 나'JPanel'을 위해 그것을 대체하십시오. Swing과 AWT를 혼용하지 마십시오 (현재 수행중인 작업이나 Java 7을 사용하지 않는 경우). 2) 더 빨리 도움을 받으려면 [SSCCE] (http://pscode.org/sscce.html)를 게시하십시오. 3)'setBounds (int, int, int, int)'에 대한 호출은 권할 수 없으며'pack()'을 더 이상 호출하지 않음으로써 중복 될 수있다. –