记住 JDialog 的大小

Remember JDialog Sizes

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

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

您可以将 componentListener 添加到您的对话框中,在调整大小的情况下可以保存值:

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

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

你可以...

使用PropertiesAPI。这只是 class 由 HashMap 支持,但可以轻松保存和加载。

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

查看 the Properties trail 了解更多详情

你可以...

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

查看 the JavaDocs 了解更多详情

你可以...

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

你可以...

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

无论您使用何种选择,您都可能会发现需要单独编写 widthheight 属性

如何获取对话框大小?

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