退出前如何保存应用程序选项?

我已经申请了,我需要在退出之前保存一些选项。(像窗口尺寸这样的东西,...,将写在一个文件中。

主框架设置了以下内容:

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

如何保存我感兴趣的选项?(当然在退出之前)

谢谢!


答案 1

如果您只想在应用程序关闭时执行某些操作,则可以使用以下代码挂接关闭:

    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {

        public void run() {
            // Do what you want when the application is stopping
        }
    }));

但是,这不允许您不关闭窗口。如果您需要在真正退出之前检查某些内容,则可以覆盖 windowClosing 事件:

addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
        // Do what you want when the window is closing.
    }
});

请注意,第一个解决方案 - 使用 shutdown hook - 具有与窗口事件无关的优点,并且即使应用程序被另一个事件停止,也会执行(当然,除非 Java 进程被残酷地杀死)。


答案 2

也许以下会有所帮助。

  1. 首先,您需要读取属性文件。查看文档

    Properties properties = new Properties();
    try {
      properties.load(new FileInputStream("filename.properties"));
    } catch (IOException e) {
      System.err.println("Ooops!");
    }
    
  2. 第二个将事件处理程序添加到窗口中,这会将数据保存在属性文件中。您需要保存的所有内容只需放入属性实例并在退出时存储即可

     addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        try {
         properties.store(new FileOutputStream("filename.properties"), null);
        } catch (IOException e) {
        }
      }
    });
    

仅此而已,如果我对你的理解是正确的)


推荐