在我们的产品中,我们有基本上是三个继承层次的框架,基本上是JDialog
。该框架覆盖默认pack()
方法如下所示:为什么getPreferredSize()返回对于此JDialog来说太小的大小?
@Override
public void pack() {
this.setSize(getMaximumSize());
validate();
super.pack();
}
@Override
public Dimension getMaximumSize(){
return super.getPreferredSize();
}
pack()
这里被称为后几乎所有在屏幕上。许多这些窗口都有一个标题栏,一对工具栏,一个保存主要内容的窗格(通常可以大部分为空)以及底部的状态栏。
我的问题似乎是,当它调用容器的getPreferredSize()
时,结果太小,即宽度看起来不错,但高度不是。通过阅读文档,如果没有明确设置(我非常肯定它不是),则首选大小似乎基于布局管理器进行计算。我不太确定它是如何计算的,或者我是否应该先做其他事情。
任何人对我的问题可能在这里有什么想法或想法?它并不总是太小,只是在某些时候。请让我知道其他信息/代码可能有助于弄清楚这一点。谢谢。