有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过DISPOSE_ON_close或EXIT_ON_close的窗口关闭操作调用ShutdownHook线程

假设Runtime.getRuntime().addShutdownHook(new Thread()已正确设置,当Java应用程序窗口(JFrame)关闭(在本例中是唯一的窗口)且dispose窗口默认关闭操作为DISPOSE_ON_CLOSEEXIT_ON_CLOSE时,如何调用ShutdownHook线程

请注意,对于使用System.exit(0)处理的quit命令,该命令随后通过ShutdownHook线程传送,应用程序将正确终止,因为所有关联的线程都会在Java应用程序退出之前终止。因此,我想通过关闭JFrame窗口来完成同样的事情,通过ShutdownHook线程清理


共 (3) 个答案

  1. # 1 楼答案

    frame.addWindowListener()和覆盖windowClosed(WindowEvent e)。从你的问题来看,当窗口关闭时,你似乎只需要一个事件处理

    祝你好运

  2. # 2 楼答案

    Runtime.getRuntime().addShutdownHook(...);
    
  3. # 3 楼答案

    这是根据您的规范工作的。如果我通过单击X按钮关闭框架,就会调用关闭挂钩

    import javax.swing.*;
    
    class ShutDownHookDemo {
    
        public static void endMessage() {
            // clean up threads here..
            System.out.println("Thanks for using the app.");
        }
    
        public static void main(String[] args) {
            Thread t = new Thread() {
                public void run() {
                    endMessage();
                }
            };
            Runtime.getRuntime().addShutdownHook(t);
    
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setSize(300,300);
    
            f.setVisible(true);
        }
    }