Java JFrame не изменяет размер - PullRequest
2 голосов
/ 07 марта 2012

У меня есть JFrame, который является контейнером верхнего уровня для окна, и один JComponent (который я реализовал), который содержится в JFrame.

В части логики моего JComponentМне нужно изменить размер окна до определенного размера, но теперь, что бы я ни пытался, это не сработало.Я попытался вызвать setPreferredSize и setSize на JFrame, JComponent и на Container, возвращенном после вызова getParent() на компоненте.

У меня такое ощущение, что это как-то связано сне вызывает pack после изменения размера, но я не могу понять, как получить доступ к JFrame из JComponent для вызова пакета (я не эксперт по колебаниям).

Спасибо

1 Ответ

3 голосов
/ 07 марта 2012

Вы всегда можете получить окно верхнего уровня, вызвав метод SwingUtilities#getWindowAncestor:

Window topLevelWindow = SwingUtilities.getWindowAncestor(myComponent);
topLevelWindow.pack();

передача в вашем компоненте. Просто убедитесь, что вы вызываете этот только после того, как графический интерфейс был обработан , иначе вы получите неприятное исключение NullPointerException.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...