2012-04-14 5 views
0

У меня проблемы с компоновкой java.awt.Какая модель Javax.awt используется?

Я пробовал каждый макет, указанный здесь: http://docs.oracle.com/javase/tutorial/uiswing/layout/ Но не достиг того, чего хотел.

У меня есть 2 JPanel. Один с фиксированным размером. Вторая с переменной шириной. Оба находятся на одном и том же горизонтальном уровне, и оба имеют одинаковую высоту.

Первый должен находиться слева от JFrame, а второй - при увеличении ширины рамки. Там также должен быть небольшой разрыв между ними, скажем, 5px.

Как вы это сделаете?

Thx.

Пс: Есть пример, похожий. Слева панель слева с 6 кнопками остается слева. Справа пример панели при расширении всего окна.

enter image description here

+1

Что вы на самом деле хотите? Что вы пробовали? – simchona

+0

Я добавляю иллюстрации. И я попробовал FlowLayout, GridBagLayout, BorderLayout и SpringLayout. –

ответ

1

Я предлагаю либо GroupLayout, либо Nested Layout для этого макета. Первый - это более поздний макет, который обеспечивает горизонтальные & вертикальные группы для выравнивания компонентов. Второй - это просто «размещение макетов внутри макетов» для достижения различных стратегий компоновки для разных областей пользовательского интерфейса (пример ниже).

0

Одним из вариантов является использование javax.swing.Box, который использует BoxLayout и обеспечивает удобные методы, такие как:

  • createRigidArea(Dimension d), что создает область, которая (контейнер) с постоянным размером.
  • createHorizontalStrut(int width), который создает фиксированное пространство между компонентами.

См. javax.swing.Box для API.

Смежные вопросы