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 не знают друг друга. (См. Определение группы размеров в официальном документе)
Как я могу добиться того, чтобы первый столбец верхней и нижней панелей получал одинаковую ширину без жесткого кодирования размера в панелях?
То, что я не хотел бы, это изменить все эти определения столбцов и жестко закодировать (одинаковую) фиксированную ширину. И вложенные панели должны оставаться независимыми, поскольку они являются компонентами пользовательского интерфейса, которые мы повторно используем.