简短版本:我需要做一些棘手的事情来让JDialog的setMaximumSize()工作吗?设置一个JDialog的最大尺寸?
完整版本:我有一个JDialog(布局管理器:BorderLayout的),其中包含与提交按钮底部的滚动面板和一个JPanel。
滚动窗格包含一个在系统中其他地方动态构建的JPanel。
我想要的是让对话框围绕JPanel动态调整自己的大小,直到达到一定的大小,然后开始生长滚动条。这或多或少是默认情况下发生的,除了最大尺寸似乎是我的显示器的尺寸。
我以为这是什么.setMaximumSize()方法继承java.awt.Component中没有,但设置它似乎并没有产生任何影响。
设置首选大小确实有效果 - 但随后的对话框始终是大小不管是什么,这真的是不是我想要的。
(和影响是相同的,如果我设置滚动窗格中的最大/首选大小属性。)
我错过了什么巨大明显?是否有一些我不知道的古怪的JDialog/BorderLayout/MaximumSize交互?
是如何形成的 “一定规模” 确定的?我的答案在下面假设它由面板的内容控制。 setMaximunSize(dont-dont-dont!)的原因是没有效果的是BorderLayout不尊重最大尺寸提示 – kleopatra 2011-04-23 10:03:45
“一定大小”基本上“足够大以容纳所有内容,除非它高于大约一半屏幕高度“。这回答了我的另一个问题:我从来没有使用setMaximumSize()方法,并且有些惊讶,他们没有工作。但是 - BorderLayout。很高兴知道。 (现在我要回去忘记它们存在。) – 2011-04-26 17:01:08