Java MigLayout:使用LayoutManager在嵌套面板中设置相等的列宽

Java MigLayout:使用LayoutManager在嵌套面板中设置相等的列宽,java,swing,miglayout,Java,Swing,Miglayout,我有嵌套的面板,每个面板使用一个 具有两行布局的外部面板。每行包含一个具有以下定义的嵌套面板(上部和下部): JPanel upper=新的JPanel();//外部组件 添加(上部,“单元格0,增长”);//“单元格0 1,生长”-用于较低的 setLayout(新的MigLayout(“,”[[grow],“[])”); 这是示意图: +----------------+---------------------------+ | |upper c

我有嵌套的面板,每个面板使用一个

具有两行布局的外部面板。每行包含一个具有以下定义的嵌套面板(上部和下部):

JPanel upper=新的JPanel();//外部组件
添加(上部,“单元格0,增长”);//“单元格0 1,生长”-用于较低的
setLayout(新的MigLayout(“,”[[grow],“[])”);
这是示意图:

   +----------------+---------------------------+
   |                |upper column 1 size        |
   |                v                           |
   |  +-------------+-------------------+       |
   |  |             |                   |       |
   |  |  label1     |     textfield1    |upper  |
   |  |             |                   |       |
   |  +-------------+-------------------+       |
   |                |                           | outer
   |  +-------------v------+------------+       |
   |  |                    |            |       |
   |  |  label2 - (longer) | textfield2 | lower |
   |  |                    |            |       |
   |  +--------------------+------------+       |
   |                       ^                    |
   |                       |lower column 1 size |
   +--------------------------------------------+
label2的文本比label1的文本长。这是它的样子

我希望文本字段的右边框对齐,尽管它们位于不同的面板中(使用单独的布局管理器)

我尝试将sizegroup设置为两个列定义,但这并没有导致更改。这在某种程度上是有道理的,因为他们彼此都不认识。(见附件)

如何在不将尺寸硬编码到面板中的情况下,使上面板和下面板的第一列具有相同的宽度?


我不想更改所有这些列定义并硬编码(相同)固定宽度。嵌套面板应该保持独立,因为它们是我们可以重用的UI组件。

简单评论一下:如果有任何方法可以避免嵌套,一般是不嵌套的-即使mig也无法处理跨组件布局Hanks,我也有这样的印象。这是否意味着重用GUI“layouted”组件实际上是不可行的?@Behe,只是想知道:您解决了这个问题吗?以防万一,我提出了一个问题,即GitHub问题:@VladimirSitnikov,我不记得了:-(