如何在mig布局中进行组件定位

时间:2018-11-13 13:54:17

标签: java miglayout

红场中的不良部分:

https://i.stack.imgur.com/yBjtp.png

问题是我怎样才能使每个面板只有B3和B4大小相同 需要是其他面板的一半。有人能帮我吗?如果我设置大小

如果我强制使用窗格大小,则会发生这种情况,我将在B4旁边有这个间隙:

https://i.stack.imgur.com/9CpGn.png

for(int i = 0; i < 60; i++) { //this is the for cycle

 if (i == 0){
            panel.add(pane,"wrap,cell 0 0 14 0,right"); // creating the first //panel the time panel in the right corner

        }
        if (i == 58){
            panel.add(pane,"cell 0 9 1 0,left");
        }
        if (i == 59){
            panel.add(pane,"cell 1 9 14 1,left,span");
        }

        if (i>0 & i<3){
            panel.add(pane, " push,grow");
            pane.setBackground(Color.yellow);
            pane.add(button, "span,push, grow");
        }
        if (i==3){
            panel.add(pane, " push,grow");
            pane.setBackground(Color.yellow);
            pane.add(button, "span ,push, grow");
        }
        if (i>3 & i<7){
            panel.add(pane, " push,grow");
            pane.setBackground(Color.yellow);
            pane.add(button, "span,push, grow");
        }
        if (i==7){
            panel.add(pane,"wrap 3, push, grow");
            pane.setBackground(Color.yellow);
            pane.add(button, "span ,push, grow");

        }

        if (i>7 & i<10){
            panel.add(pane, "push , grow");
            pane.setBackground(Color.yellow);
            pane.add(button, "span,push, grow");
        }  
                    if (i==10){
                        panel.add(pane, "push , grow,split 2, w 0, h 0, , "  ); // split it to two this is what dosn't works
                        pane.setBackground(Color.yellow);
                        pane.add(button, "span,push, grow");
                    }
                    if (i==11){
                        panel.add(pane, "push ,grow,");
                        pane.setBackground(Color.yellow);
                        pane.add(button, "span,push, grow");
                    }
        if (i>11 & i<15){
            panel.add(pane, "push , grow");
            pane.setBackground(Color.yellow);
            pane.add(button, "span,push, grow");
        } 
        if (i==15){
            panel.add(pane,"wrap 3, push, grow");
            pane.setBackground(Color.yellow);
            pane.add(button, "span,push, grow");
        }
        if (i>15 & i<22){
            panel.add(pane, "push , grow");
            pane.setBackground(Color.yellow);
            pane.add(button, "span ,push, grow");
        }
        if (i==22){
            panel.add(pane,"wrap 3, push, grow");
            pane.setBackground(Color.yellow);
            pane.add(button, "span ,push, grow");
        }
        if (i>22 & i<29){
            panel.add(pane, "push , grow");
            pane.setBackground(Color.yellow);
            pane.add(button, "span ,wrap 3,push, grow");
        }

其中i = 10和i = 11,这是我尝试使用分割功能的B3 B4面板,但是不起作用。

1 个答案:

答案 0 :(得分:0)

拆分[count] 将单元划分为多个子单元。实际上,这意味着下一个计数数字分量将被放置在同一单元格中,彼此之间没有间隙。只有单元格中的第一个组件可以设置拆分,单元格中任何后续的split关键字都将被忽略。 “拆分” “换行”或“换行符” 将脱离拆分单元格。后两个将照常移动到新的行/列。

因此,请删除其他参数,这些参数会破坏适当的拆分功能。

拆分单元格同样简单直观。

panel.add(comp1);
panel.add(comp2, "split 2"); // Split the cell in two
panel.add(comp3); // Will be in same cell as previous
panel.add(comp4, "wrap"); // Wrap to next row
panel.add(comp5);

视觉上看起来像这样:

enter image description here