2013-12-20 2 views
0

키를 누르거나 누르거나 놓을 때 아무런 반응이 없습니다. 이 키워드를 사용하여 keylistener를 추가하려고합니다. 마우스 수신기를 추가하면 잘 동작합니다.JApplet에서 KeyListener가 실행되지 않음

class MainApplet extends JApplet implements KeyListener{ 

MainApplet(){ addKeyListener(this) } 

public void init(){} 

public void start(){} 

public void keyTyped(KeyEvent e) { 
    // TODO Auto-generated method stub 
    System.out.print(e); 

} 
public void keyPressed(KeyEvent e) { 
    // TODO Auto-generated method stub 

} 
public void keyReleased(KeyEvent e) { 
    // TODO Auto-generated method stub 

} 

} 

답변

4

KeyEvents는 포커스가있는 구성 요소에 대해서만 생성됩니다. 애플릿의 컴퍼넌트에는 포커스가 없기 때문에, 컴퍼넌트는 KeyEvents를 수신 할 수 없습니다. 진짜 문제는 당신이하려고하는 어떤

Component contentPane = getContentPane(); 
contentPane.setFocusable(true); 
contentPane.addKeyListener(this); 

: 같은

시도 뭔가? 우리가 실제 요구 사항을 알고있을 때 우리가 제안 할 수있는 더 나은 해결책이있을 것입니다. 일반적으로 Key Bindings을 사용하면 주어진 구성 요소에서 KeyStroke를 수신 대기합니다.

+2

키 바인딩이오고 있다는 것을 알고 있으므로 지금 +1 할 것입니다.) – MadProgrammer

+0

@MadProgrammer, 너무 예측 가능합니다 :) – camickr