0
JFrame과 JTextField가 있습니다.JFrame 헤더를 클릭하면 팝업창이 나타납니다.
JWindow를 기반으로 팝업 창을 만들면 textField에 잘못된 값이있는 경우 나타납니다.
메인 JFrame을 이동하거나 JFrame 헤더를 클릭하면 내 팝업을 숨기고 싶습니다.
JFrame과 JTextField가 있습니다.JFrame 헤더를 클릭하면 팝업창이 나타납니다.
JWindow를 기반으로 팝업 창을 만들면 textField에 잘못된 값이있는 경우 나타납니다.
메인 JFrame을 이동하거나 JFrame 헤더를 클릭하면 내 팝업을 숨기고 싶습니다.
JWindow
에 WindowFocusListener
을 추가하고 창이 포커스를 잃을 때 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);
}
}
});
JWindow의 포커스를받을 수 없습니다. 그리고 componendMoved는 이동이 끝났을 때만 발생하고 창을 이동할 때 작동하지 않고 [ESC] – Alexandr
을 누르면 '장식되지 않은 JDialog'를 고려하십시오. – rtheunissen
TextField에서 포커스를 잃어 버리지 않습니다. – Alexandr