您希望 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中文网其他相关文章!