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