void terminate() {}
protected JFrame frame = new JFrame();
当我按下关闭按钮时,如何让frame
运行终止功能?
编辑:我试图运行它,但由于某种原因它不打印测试(但程序关闭)。有谁知道可能是什么问题?
frame.addWindowListener(new WindowAdapter() {
public void WindowClosing(WindowEvent e) {
System.out.println("test");
frame.dispose();
}
});
答案 0 :(得分:17)
您可以使用addWindowListener:
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
... //call terminate
...
}
});
答案 1 :(得分:14)
您不仅需要添加窗口侦听器,还必须将默认关闭操作设置为关闭时不执行任何操作。这允许您的代码执行。
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent event) {
exitProcedure();
}
});
最后,您必须调用System exit来实际停止运行程序。
public void exitProcedure() {
frame.dispose();
System.exit(0);
}
答案 2 :(得分:1)
如果要在JFrame关闭后终止程序,则必须在JFrame上设置默认关闭操作。
在JFrame的构造函数中写:
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
如果你只是想在窗口关闭时调用方法而不是终止整个程序,那么请选择Maroun的答案。
答案 3 :(得分:1)
Frame.dispose()方法不终止程序。要终止程序,您需要调用System.exit(0)方法