2012-01-31 3 views

답변

1

JWindowWindowFocusListener을 추가하고 창이 포커스를 잃을 때 setVisible(false)을 추가하십시오. 이런 식으로 뭔가 :

popup.addWindowFocusListener(new WindowAdapter() { 

    public void windowLostFocus(WindowEvent e) { 
     if (popup.isVisible()){ 
      popup.setVisible(false); 
     } 
     } 
    }); 

또는 당신이 계신 아니라면, 당신은 추가 할 수 있습니다

ComponentListener 당신의 JFrame에 :

frame.addComponentListener(new ComponentAdapter(){ 

    public void componentMoved(ComponentEvent e) { 
     if (popup.isVisible()){ 
      popup.setVisible(false); 
     } 
     } 
    }); 
+0

JWindow의 포커스를받을 수 없습니다. 그리고 componendMoved는 이동이 끝났을 때만 발생하고 창을 이동할 때 작동하지 않고 [ESC] – Alexandr

+0

을 누르면 '장식되지 않은 JDialog'를 고려하십시오. – rtheunissen

+0

TextField에서 포커스를 잃어 버리지 않습니다. – Alexandr

관련 문제