退出前如何保存应用程序选项?
2022-09-02 02:59:50
我已经申请了,我需要在退出之前保存一些选项。(像窗口尺寸这样的东西,...,将写在一个文件中。
主框架设置了以下内容:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
如何保存我感兴趣的选项?(当然在退出之前)
谢谢!
我已经申请了,我需要在退出之前保存一些选项。(像窗口尺寸这样的东西,...,将写在一个文件中。
主框架设置了以下内容:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
如何保存我感兴趣的选项?(当然在退出之前)
谢谢!
如果您只想在应用程序关闭时执行某些操作,则可以使用以下代码挂接关闭:
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 进程被残酷地杀死)。
也许以下会有所帮助。
首先,您需要读取属性文件。查看文档
Properties properties = new Properties();
try {
properties.load(new FileInputStream("filename.properties"));
} catch (IOException e) {
System.err.println("Ooops!");
}
第二个将事件处理程序添加到窗口中,这会将数据保存在属性文件中。您需要保存的所有内容只需放入属性实例并在退出时存储即可
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
try {
properties.store(new FileOutputStream("filename.properties"), null);
} catch (IOException e) {
}
}
});
仅此而已,如果我对你的理解是正确的)