Как установить размер JPanel? - PullRequest
0 голосов
/ 22 июня 2010

Я использую создатель форм Netbean и пробую некоторые вещи.Я не уверен, что это менеджер компоновки, но когда я создаю свой собственный JPanel и добавляю его в основную панель содержимого моего окна, размер панели всегда увеличивается внутри FrameView независимо от используемой методологии изменения размеровнапример, setSize или setPreferred size.Я очень новичок в AWT и Swing.

Ответы [ 4 ]

2 голосов
/ 22 июня 2010

Вы не должны устанавливать размеры вручную. Оставьте это менеджерам компоновки, и ваш GUI не сломается при изменении размера окна или шрифта или даже просто метки кнопки.

Хитрость с менеджерами компоновки заключается в том, что вы можете использовать не один, а несколько, во вложенных JPanel с. Таким образом, возможен почти любой макет.

2 голосов
/ 22 июня 2010

С дизайнером NetBeans WYSIWYG это просто - просто обязательно используйте Free Form Design и используйте мышь для изменения размера. Возможно, панель сама по себе больше, чем FrameView, поэтому дважды щелкните по ней (вы редактируете ее исключительно) и уменьшите ее. Дважды щелкните, чтобы вернуться к родительскому компоненту, и все будет в порядке.

Или, может быть, посмотрите некоторые учебники на сайте NetBeans .

0 голосов
/ 22 июня 2010

Это происходит потому, что менеджер компоновки контейнера JPanel (возможно, это JFrame или другой JPanel) инструктирует JPanel максимизировать.

Выполните следующее:

  1. Узнайте, кто является родителем этого JPanel (взгляните на дерево объектов содержимого NetBeans)

  2. Проверьте, какой макет определен для контейнера

  3. Прочитайте документацию о LayoutManager's (они находятся в пакете java.awt)

  4. ???

  5. ПРИБЫЛЬ!

0 голосов
/ 22 июня 2010

По моему опыту, Свинг очень требователен. Я бы попробовал setMaximumSize и setPreferedSize. Как примечание стороны: когда я когда-либо использовал GridLayout, он всегда растягивает то, что находится в каждой из ячеек (я думаю, чтобы сделать это симметричным) Flow, Box, Border и я думаю, что у GridBag такой проблемы нет.

-Brett

...