2012-05-24 2 views
0

У меня есть JPanel, которые я не знаю, его размер (Это будет определяться пользователем)Макет для панели с неизвестным размером

Я хочу, чтобы поместить M метки на панели (M определяется в перспективе время) , чтобы каждая метка была центрирована, а ее ширина составляла 90%. Высота будет абсолютной. (между каждыми 2 лабильниками будет отдельная линия)

Горячий вы предлагаете сделать?

Спасибо!

ответ

2

Попробуйте сделать это с помощью Y_AXIS, ориентированного BoxLayout. Вы можете использовать JSeparator для линий.

+0

Спасибо. как я могу установить ширину метки на 90% в этом случае? – DudiD

+0

Не изящное решение, но вы можете прослушивать события изменения размера и устанавливать размеры компонентов. Если это выглядит уродливо для вас, у вас есть еще две альтернативы: 1) разработать собственный менеджер макетов 2) разработать пользовательский компонент и нарисовать все. –

1

Используйте GridLayout(0, 1, 0, horizGap) - 0, 1 для 1 столбца, переменное количество строк, следующее 0 для вертикального зазора, которое вам не нужно, и horizGap для горизонтальной зазора между строками.

Затем поместите его в другой JPanel, который дополняется слева направо через EmptyBorder.

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