Добавьте WindowFocusListener
к JWindow
и 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);
}
}
});