이 예제는 확인 된 창 닫기 조작을 실현하는 방법을 보여줍니다.
창에는 기본 닫기 작업을 EXIT_ON_CLOSE
또는 DO_NOTHING_ON_CLOSE
의 답변에 따라 달라지는 창 어댑터가 OptionDialog
있습니다.
창 닫기 이벤트를 발생시키는 방법 closeWindow
은 ConfirmedCloseWindow
어디서나 메뉴 항목의 동작으로 사용할 수 있습니다.
public class WindowConfirmedCloseAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
Object options[] = {"Yes", "No"};
int close = JOptionPane.showOptionDialog(e.getComponent(),
"Really want to close this application?\n", "Attention",
JOptionPane.YES_NO_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,
options,
null);
if(close == JOptionPane.YES_OPTION) {
((JFrame)e.getSource()).setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
} else {
((JFrame)e.getSource()).setDefaultCloseOperation(
JFrame.DO_NOTHING_ON_CLOSE);
}
}
}
public class ConfirmedCloseWindow extends JFrame {
public ConfirmedCloseWindow() {
addWindowListener(new WindowConfirmedCloseAdapter());
}
private void closeWindow() {
processWindowEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
}
}