【发布时间】:2012-03-17 19:41:30
【问题描述】:
我有一个 Java Swing 应用程序,其中包含一堆框架,而这些框架又主要包含显示大量数据的表。由于在启动时安排所有窗口和表格总是很麻烦且耗时,我想实现“工作区”功能,以便用户可以保存首选项设置并在启动时选择自动加载存储的工作区到让所有窗口和表格显示为以前保存的状态。具体来说,我希望存储在工作区中的设置是:
- 活动窗口 (JFrame) 及其在屏幕上的大小和位置
- 表格设置,包括选定列、列顺序、列宽、排序、过滤
有没有人知道一种智能且简单的方法来实现这一点,而无需明显的,以及似乎非常复杂和繁琐的解决方案,即遍历所有打开的窗口并使用Preferences api 保存每条信息?谢谢
【问题讨论】:
-
总是有“序列化整个 GUI”,但我怀疑 1)这些 GUI 中会有不可序列化的部分 2)正常工作会很麻烦。
-
我相信你对这两个怀疑都是正确的。
-
您可能会考虑使用(更好的)Swing 应用程序框架,它支持轻松存储应用程序状态(以及其他细节)(尽管切换到新框架可能过于侵入性:-)
-
如果我刚开始时就走那条路,BSAF 可能是一个不错的选择,但怀疑现在按照您的建议切换会很痛苦。
标签: java swing settings preferences workspace