java - 在使用之间保存 Java GUI 布局配置(带桌面 Pane )

标签 java swing layout user-interface save

我正在开发一个 GUI,我想让它在 session 之间保存其布局信息。具体来说,如果用户运行 gui,然后将 gui 移动到屏幕的不同部分,我希望 gui 在关闭之前保存该屏幕位置,以便下次打开时它将在新的屏幕位置打开。我想对宽度和高度做同样的事情(以保留用户对 gui 所做的任何调整大小)。

最后,我在我的 GUI 中使用了一个桌面 Pane ,它有多个内部框架。我真的很想保留每个内部框架的布局(屏幕位置、高度和宽度、图标化(最小化)或不图标化)。

我的问题是,是否有一种简单的内置方法可以在 Java 中执行此操作?还是我需要手动完成。我四处搜索,但找不到太多关于这个主题的信息。

我正在使用 Netbeans GUI 编辑器开发我的 GUI。谢谢!!

最佳答案

您有任意数量的选择。

存储

  1. Properties .这基本上是一个 String 键/值对,具有 loadsave 功能。尽管
  2. ,您将需要能够解析传入和传出 String 的值
  3. Preferences API 比 Properties 更高级一些,因为它允许您存储原语,但您无法控制这些值的存储位置(或多或少)。一个example
  4. 如果你真的很喜欢冒险,你可以使用 XML api ,甚至可能是JAXB .

捕获事件

主窗口其实很简单。基本上,您只想将 WindowListener 附加到主窗口并监视 windowClosing 事件。在这一点上,您需要获得框架的界限并坚持您希望的方式。查看How to write window listeners

桌面根据您的需要提供了一些额外的机制。

您可以简单地添加 InternalFrameListener每个 JInternalFrame 并监视 internalFrameClosinginternalFrameClosed 事件。

或者您可以实现自己的 DesktopManager 并覆盖 closeFrame 方法。如果可以的话,我可能会避免这种情况,因为每个外观和感觉的 DesktopManager 都是不同的

关于java - 在使用之间保存 Java GUI 布局配置(带桌面 Pane ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155832/

相关文章:

Java Swing : is there a standard fading rate?

ios - Xcode 自动布局约束不起作用(使用 Storyboard)

java - 标点符号和 .next() 方法

java - 如何识别直接点击 JTable 中的 JCheckBox?

java - JComboBox 使用 DefaultComboBoxModel 修改索引

html - 在流体布局中将容器 ul/div 居中

android - 如何均匀分配回收 View 中的项目?

java - OSGi 4.2 中有哪些新功能?

java - 如何将这个 while 循环转换为递归?

java - 如何实现Android详细通知?