在 Java/SWT 中保存窗口的状态
我正在尝试使用 Java 和 SWT 为 GUI 构建一个小型应用程序。我正在寻找一种方法来将用户设置的首选项存储在某个文件中,我的意思是,如果调整了窗口大小,则应保存新的大小以供下次应用程序启动时使用。对于文本框等一些控件也是如此。
我想出了两个想法来解决这个问题:
- 使用经典的手工制作的 .ini 文件来存储这些首选项。但它看起来很丑陋并且难以维护。
- 包含 GUI 的整个类的序列化/反序列化。不知道这是否可能。
有什么想法吗?我应该怎么办?
提前致谢。
补充:
我不是在做 Eclipse RCP 项目,它只是一个普通 SWT 应用程序。
更多: 我已经尝试过序列化,但 SWT 小部件不支持它,因此我找到的唯一其他选项是创建另一个类(例如 Configuration),将其标记为可序列化并在其中保存小部件的值。几乎与使用 java.util.prefs.Preferences 类似,但没那么简单。
我仍在等待是否有另一种方法可以做到这一点,也许涉及一些绑定。
I'm trying to build a small application using Java and SWT for the GUI. I'm looking for a way to store in some file the preferences set by the user, I mean, if the window was resized then that new size should be saved for next time the application starts. The same thing with some controls like textbox and so on.
I came up with two ideas to solve this:
- Use the classic hand-made .ini files to store those preferences. But it appears to be ugly and hard to maintain.
- Serialization/Deserialization of the whole class that contains the GUI. Dunno if this is even possible.
Any ideas? What should I do?
Thanks in advance.
Added:
I'm not doing an Eclipse RCP project, it's just a normal SWT application.
More:
I've already tried with serialization, but SWT widgets doesn't support it, so the only other option that I've found is create another class, say Configuration, mark it as serializable and hold there the values of my widgets. Almost like using java.util.prefs.Preferences, but not as simple.
I'm still waiting to see if there is another way to do this, maybe with some binding involved.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看 Memento 设计模式。
Eclipse RCP已经重用了这个原理,您可以参考以下接口了解更多信息:
Have a look at Memento design pattern.
Eclipse RCP already reuses this principle, you can refer to the following interface for more information: