art*_*rxe 20 java processing swing desktop-application
我已经创建了一个应用程序,我需要在退出之前保存一些选项.(类似于窗口维度,......,将写入文件中.)
主框架设置如下:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)
如何保存我感兴趣的选项?(在退出之前)
谢谢!
Rom*_*las 34
如果您只是想在应用程序关闭时执行某些操作,可以使用以下代码挂钩关闭:
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
public void run() {
// Do what you want when the application is stopping
}
}));
Run Code Online (Sandbox Code Playgroud)
但是,这不允许您不关闭窗口.如果您需要在真正退出之前检查某些内容,可以覆盖该windowClosing
事件:
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
// Do what you want when the window is closing.
}
});
Run Code Online (Sandbox Code Playgroud)
请注意,第一个解决方案 - 使用关闭挂钩 - 的优点是它与窗口事件无关,即使应用程序被另一个事件停止也会执行(当然,除非Java进程被残酷地杀死) ).
可能以下将有所帮助.
首先,你需要阅读你的属性文件.见文档
Properties properties = new Properties();
try {
properties.load(new FileInputStream("filename.properties"));
} catch (IOException e) {
System.err.println("Ooops!");
}
Run Code Online (Sandbox Code Playgroud)第二个向窗口添加事件处理程序,它会将您的数据保存在属性文件中.您需要保存的所有内容只需放入属性实例并将其存储在退出
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
try {
properties.store(new FileOutputStream("filename.properties"), null);
} catch (IOException e) {
}
}
});
Run Code Online (Sandbox Code Playgroud)这就是全部,如果我理解你的正确的话)