Spec-Zone .ru
спецификации, руководства, описания, API
|
GroupLayout
менеджер по расположению объединился с инструментом разработчика, чтобы разметить Ваш GUI. Один такой инструмент разработчика является IDE NetBeans. Иначе, если Вы хотите кодировать вручную и не хотите использовать GroupLayout
, тогда GridBagLayout
рекомендуется как следующий самый гибкий и мощный менеджер по расположению. Если Вы интересуетесь использованием JavaFX, чтобы создать Ваш GUI, см. Работу С Разметками в JavaFX.
Проблема: Как я определяю точный размер компонента?
setSize
или setBounds
метод на этом. Иначе, Вы должны обеспечить подсказки размера и затем удостовериться, что используете менеджера по расположению, который уважает подсказки размера.getMinimumSize
, getPreferredSize
, и getMaximumSize
методы. То, что хорошо об этом подходе, то, что каждый getXxxxSize
метод может получить подсказки размера значения по умолчанию компонента, вызывая super.getXxxxSize()
. Затем это может скорректировать размер, в случае необходимости, прежде, чем возвратить это. Это особенно удобно для текстовых компонентов, где Вы могли бы хотеть фиксировать width, но определить height от контента. Однако, иногда с проблемами можно встретиться GridBagLayout
и текстовые поля, в чем если размер контейнера меньше чем привилегированный размер, минимальный размер, привыкают, который может заставить текстовые поля уменьшаться вполне существенно.setMinimumSize
, setPreferredSize
, и setMaximumSize
методы.revalidate
метод на этом, чтобы удостовериться, что его иерархия включения размечается снова. Затем вызовите repaint
метод.FlowLayout
и GridBagLayout
менеджеры используют привилегированный размер компонента (последний в зависимости от ограничений, которые Вы устанавливаете), но BorderLayout
и GridLayout
обычно не делайте. BoxLayout
менеджер обычно использует привилегированный размер компонента (хотя компоненты могут быть больше), и один из немногих менеджеров по расположению, который уважает максимальный размер компонента. Проблема: Мой компонент не появляется после того, как я добавил это к контейнеру.
revalidate
и repaint
после добавления компонента прежде, чем это обнаружится в Вашем контейнере.Проблема: Мой пользовательский компонент измеряется слишком маленький.
getPreferredSize
и getMinimumSize
методы? Если так, они возвращают правильные значения?Если Вы не видите своей проблемы в этом списке, см.