首页  >  文章  >  Java  >  调整 JDialog 的大小:为什么 SetMaximumSize 可能不起作用?

调整 JDialog 的大小:为什么 SetMaximumSize 可能不起作用?

DDD
DDD原创
2024-10-23 22:40:02252浏览

Resizing a JDialog: Why SetMaximumSize May Not Work?

设置 JDialog 的最大大小

问题

您希望 JDialog 根据所包含的 JPanel 的内容动态调整其大小,但即使设置 setMaximumSize 属性后,对话框的大小调整仍然超出指定的最大值。

解决方案

虽然设置最大尺寸似乎足够,但 JDialog、BorderLayout 和 MaximumSize 之间的非常规交互可能会妨碍其功能。相反,请考虑使用 JList 的 setVisibleRowCount 方法或 getViewport().setPreferredSize(...) 来提供设置首选大小的相关信息。

示例

在下面的示例中,一个对话框调整其大小以显示最多 N 行的 JList。单击“添加”按钮后,行将添加到列表中,从而导致对话框展开直至达到最大大小。此时,会出现滚动条。

<code class="java">public class ListDialog {

    // ...

    private void append() {
        model.addElement("String " + String.valueOf(++count));
        list.ensureIndexIsVisible(count - 1);
        if (count <= N) {
            list.setVisibleRowCount(count);
            dlg.pack();
        }
    }

    // ...
}</code>

以上是调整 JDialog 的大小:为什么 SetMaximumSize 可能不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn