【问题标题】:Remember JDialog Sizes记住 JDialog 大小
【发布时间】:2018-01-25 08:25:13
【问题描述】:

我有一个 java 应用程序并在其中使用 JDialog。我正在使用setMinimumSize(640,400)。并且每当用户将对话框调整为某个自定义高度和宽度时。必须保存这个新尺寸,以便下次用户加载相同的对话框时,它应该以新的用户自定义尺寸而不是最小尺寸呈现。

有人可以帮我如何在所有用户会话中存储新维度吗?

【问题讨论】:

  • 最简单的解决方案可能是使用Preferences API

标签: java swing applet java-web-start


【解决方案1】:

您可能会使用多种可能的解决方案

你可以...

使用Properties API。这只是一个由HashMap 支持的类,但它可以很容易地保存和加载。

此 API 让您可以完全控制文件的保存位置,因此您可能希望保存到 user.home 位置以将其与给定用户关联。

查看the Properties trail了解更多详情

你可以...

使用Preference API。它提供了一些有用的功能,允许您定义存储值的上下文(即用户或系统),并且它控制值本身的存储,因此您无需担心尝试保存或加载重视自己

查看the JavaDocs了解更多详情

你可以...

只需使用 JSON、XML 或简单的旧文本自行将数据写入文件。这很复杂,需要大量的工作,但可以让您完全控制

你可以...

将值存储在某种数据库系统中,如果有的话

无论您使用哪种选择,您可能会发现您需要分别写出 width 和 height 属性

如何获取对话框大小?

嗯,这在很大程度上取决于您已经在做什么。例如,我可能想创建一个自定义对话框,当它关闭时,它会自己写出尺寸属性。它也会加载它们自己构建的,这样,你只依赖JDialog#getSize

【讨论】:

    【解决方案2】:

    您可以在 Dialog 中添加一个 componentListener,在调整大小的情况下可以保存值:

    dialog.addComponentListener(new ComponentAdapter() {
        public void componentResized(ComponentEvent e) {
            Dimension dimension = e.getComponent().getSize();
            // save the dimension
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多