В нашем продукте у нас есть кадры, которые в основном на три уровня наследования ниже, чем, по сути, JDialog
. Этот кадр переопределяет метод pack()
по умолчанию, как показано:
@Override
public void pack() {
this.setSize(getMaximumSize());
validate();
super.pack();
}
@Override
public Dimension getMaximumSize(){
return super.getPreferredSize();
}
pack()
здесь вызывается после того, как почти все на экране. Многие из этих окон имеют строку заголовка, пару панелей инструментов, панель, которая содержит основное содержимое (часто может быть в основном пустым), и строку состояния внизу.
Моя проблема заключается в том, что когда он вызывает getPreferredSize()
для контейнера, результат слишком мал, то есть ширина кажется приемлемой, а высота - нет. Читая документы, кажется, что предпочтительный размер вычисляется на основе менеджера компоновки, если он не установлен явно (что я уверен, что это не так). Я не совсем уверен, как он рассчитывает, или я должен сначала сделать что-то еще.
У кого-нибудь есть идеи или мысли относительно того, что моя проблема может быть здесь? Это не всегда слишком мало, только иногда. Пожалуйста, дайте мне знать, какая другая информация / код может быть полезен для выяснения этого. Спасибо.