MigLayout: установить равную ширину столбца во вложенных панелях с помощью LayoutManager

У меня есть вложенные панели с использованием MigLayout каждая.

Панель наружная с MigLayout с двумя рядами. Каждая строка содержит вложенную панель (верхнюю и нижнюю) со следующим определением:

JPanel upper = new JPanel(); // External component
add(upper, "cell 0 0,grow"); // "cell 0 1, grow" - for the lower
upper.setLayout(new MigLayout("", "[][grow]", "[]"));

Это схематический вид:

   +----------------+---------------------------+
   |                |upper column 1 size        |
   |                v                           |
   |  +-------------+-------------------+       |
   |  |             |                   |       |
   |  |  label1     |     textfield1    |upper  |
   |  |             |                   |       |
   |  +-------------+-------------------+       |
   |                |                           | outer
   |  +-------------v------+------------+       |
   |  |                    |            |       |
   |  |  label2 - (longer) | textfield2 | lower |
   |  |                    |            |       |
   |  +--------------------+------------+       |
   |                       ^                    |
   |                       |lower column 1 size |
   +--------------------------------------------+

Текст метки2 длиннее текста метки1. Вот как это выглядит.

Снимок экрана с вложенными панелями

Я хочу выровнять правую границу текстовых полей, несмотря на то, что они находятся на разных панелях (с отдельными LayoutManager)

Я попытался установить размерную группу для обоих определений столбцов, но это не привело к изменению. Что имеет смысл, так как MigLayouts не знают друг друга. (См. Определение группы размеров в официальном документе)

Как я могу добиться того, чтобы первый столбец верхней и нижней панелей получал одинаковую ширину без жесткого кодирования размера в панелях?

То, что я не хотел бы, это изменить все эти определения столбцов и жестко закодировать (одинаковую) фиксированную ширину. И вложенные панели должны оставаться независимыми, поскольку они являются компонентами пользовательского интерфейса, которые мы повторно используем.

0 ответов

Другие вопросы по тегам