在 JFrame 关闭上运行函数

2022-09-02 19:33:27
void terminate() {}
protected JFrame frame = new JFrame();

如何运行关闭功能,当我按下关闭按钮?frame

编辑:我试图运行这个,但由于某种原因它没有打印测试(但是,程序关闭)。有没有人知道可能是什么问题?

frame.addWindowListener(new WindowAdapter() {
    public void WindowClosing(WindowEvent e) {
        System.out.println("test");
        frame.dispose();
    }
});

答案 1

您可以使用 addWindowListener

frame.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
        // call terminate
    }
});

请参阅 void windowClosing(WindowEvent e)Class WindowAdapter


答案 2

您不仅必须添加窗口侦听器,还必须将默认的关闭操作设置为在关闭时不执行任何操作。这允许执行代码。

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent event) {
        exitProcedure();
    }
});

最后,您必须调用系统退出才能实际停止程序运行。

public void exitProcedure() {
    frame.dispose();
    System.exit(0);
}

推荐