2016-10-07 5 views
0

Java 애플릿 (JApplet 클래스 사용)이 있으며 애플릿 창이 활성화 될 때 이벤트를 가져 오려고합니다. WindowListener와 FocusListener를 구현하려고했지만 이벤트를받지 못했습니다. 애플릿 윈도우가 포커스를 받았는지 알아 내기 위해 무엇을해야합니까? 추가애플릿에서 포커스 또는 창 이벤트 수신 안 함

public class AppletTest extends JApplet implements WindowListener, FocusListener { 
    public void init() { 
//  addWindowListener(this); // Won't compile 
     addFocusListener(this); 
    } 
    public void actionPerformed(ActionEvent event){ 
     Object source = event.getSource(); 
     String command = event.getActionCommand(); 
    } 

    @Override 
    public void focusGained(FocusEvent e) { 
     System.out.println("focusGained"); 
    } 
    @Override 
    public void focusLost(FocusEvent e) {} 

    @Override 
    public void windowActivated(WindowEvent e) { 
     System.out.println("windowActivated"); 
    } 
    // Stub methods 
    @Override 
    public void windowOpened(WindowEvent e) {} 
    @Override 
    public void windowClosing(WindowEvent e) {} 
    @Override 
    public void windowClosed(WindowEvent e) {} 
    @Override 
    public void windowIconified(WindowEvent e) {} 
    @Override 
    public void windowDeiconified(WindowEvent e) {} 
    @Override 
    public void windowDeactivated(WindowEvent e) {} 
} 

답변

1

: 여기

내 테스트 코드입니다 (사실) 위해서 setFocusable을;

을 초기화 메소드로 수정해야 문제가 해결됩니다.

+0

실제로 제가 요청한 문제를 해결합니다. 감사합니다! –

+0

그러나, 상당히 복잡해지는 제작 코드에서는 항상 해고되는 것은 아닙니다. 내 애플릿에는 모덜리스 JPanel도있다. 그 JPanel 중 하나가 위에 있고 기본 애플릿 창을 클릭하면 focusGained 이벤트가 시작되지 않습니다. 내 기본 애플릿 창이 zOrder의 맨 위로 가져 왔을 때 이벤트를 얻을 수있는 방법이 있습니까? –