在JFrame上单击closuresbutton时执行一些操作

当我单击JFrame标题栏上的红色closuresbutton时,是否有某种方式“做某些事情”? 我想要做的就是当单击button时调用一个名为confirmExit()的方法。 到目前为止,我唯一的select是让它无所作为,但我不想要这样做。 我如何做到这一点?

提前致谢。

 import javax.swing.JOptionPane; import javax.swing.JFrame; /*Some piece of code*/ frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); frame.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent windowEvent) { if (JOptionPane.showConfirmDialog(frame, "Are you sure to close this window?", "Really Closing?", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION){ System.exit(0); } } }); 

覆盖windowClosing方法。

 public void windowClosing(WindowEvent e) 

它在窗口正在closures的过程中被调用。 closures操作可以在这一点上被覆盖。

  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

也有效。 首先创build一个名为frame的JFrame,然后在下面添加这个代码。

尝试这个:

 setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); 

它会工作。

这可能工作:

 jdialog.addWindowListener(new WindowAdapter() { public void windowClosed(WindowEvent e) { System.out.println("jdialog window closed event received"); } public void windowClosing(WindowEvent e) { System.out.println("jdialog window closing event received"); } }); 

来源: https : //alvinalexander.com/java/jdialog-close-closing-event