在我們的產品中,我們有基本上是三個繼承層次的框架,基本上是JDialog
。該框架覆蓋默認pack()
方法如下所示:爲什麼getPreferredSize()返回對於此JDialog來說太小的大小?
@Override
public void pack() {
this.setSize(getMaximumSize());
validate();
super.pack();
}
@Override
public Dimension getMaximumSize(){
return super.getPreferredSize();
}
pack()
這裏被稱爲後幾乎所有在屏幕上。許多這些窗口都有一個標題欄,一對工具欄,一個保存主要內容的窗格(通常可以大部分爲空)以及底部的狀態欄。
我的問題似乎是,當它調用容器的getPreferredSize()
時,結果太小,即寬度看起來不錯,但高度不是。通過閱讀文檔,如果沒有明確設置(我非常肯定它不是),則首選大小似乎基於佈局管理器進行計算。我不太確定它是如何計算的,或者我是否應該先做其他事情。
任何人對我的問題可能在這裏有什麼想法或想法?它並不總是太小,只是在某些時候。請讓我知道其他信息/代碼可能有助於弄清楚這一點。謝謝。