我正在开发一个GUI,我想让它在会话之间保存它的布局信息。具体来说,如果用户运行gui,然后将gui移动到屏幕的不同部分,我希望gui在关闭之前保存该屏幕位置,以便下次打开时它将在新的屏幕位置打开。我想对宽度和高度做同样的事情(以保留用户对gui的重新调整大小)。
最后,我在GUI中使用桌面窗格有多个内部框架。我真的很想保留每个内部框架的布局(屏幕位置,高度和宽度,图标化(最小化)或不)。
我的问题是,在java中有一种简单的,内置的方法吗?或者我需要手动完成。我四处寻找,但在这个主题上找不到多少。
我正在使用Netbeans GUI编辑器开发GUI。谢谢!
答案 0 :(得分:2)
您有多种选择。
String
键/值对,具有load
和save
功能。您需要能够从String
通过Properties
更高级,因为它允许您存储基元,但是您无法控制这些值的存储位置(或多或少)。 example 主窗口实际上很简单。基本上你只想将WindowListener
附加到主窗口并监视windowClosing
事件。在这一点上,您需要获得框架的边界并坚持通过您想要的任何方式。查看How to write window listeners
桌面根据您的需要提供了一些额外的机制。
您只需向JInternalFrame
添加InternalFrameListener即可监控internalFrameClosing
或internalFrameClosed
个事件。
或者您可以实现自己的DesktopManager
并覆盖closeFrame
方法。如果可以的话,我可能会避免这种情况,因为DesktopManager
对于每种外观都是不同的
答案 1 :(得分:1)
实施WindowListener
并在windowClosing()
调用中,将有关GUI的信息保存到Properties系统,然后store
将它们保存到文件中。
构建GUI时,读取属性文件(如果存在)并设置要为其维护属性的组件的属性。
确保为每个内部框架使用不同的名称,这样就不会覆盖属性。
答案 2 :(得分:1)
不,没有可用的库,你必须手动编码。
如果你可以转移到其他GUI框架,如JDesktop,它有一个内置函数,但与框架绑定。