2012-01-31 12 views

答えて

1

JWindowWindowFocusListenerを追加し、フォーカスが失われたときにsetVisible(false)を追加します。

popup.addWindowFocusListener(new WindowAdapter() { 

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

それともそれはあなたが後にしているものではありませんならば、あなたはJFrameComponentListenerを追加することができます:

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

関連する問題