在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