【问题标题】:How to make component positioning in mig layout如何在mig布局中进行组件定位
【发布时间】:2019-04-16 09:07:17
【问题描述】:

红色方块中的坏部分:

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

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

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 面板,我尝试使用拆分功能但不起作用。

【问题讨论】:

    标签: java miglayout


    【解决方案1】:

    拆分[计数] 将单元格拆分为多个子单元格。实际上,这意味着下一个计数组件将被放置在同一个单元格中,彼此相邻而没有间隙。只有单元格中的第一个组件可以设置拆分,单元格中的任何后续拆分关键字都将被忽略。 "split""wrap" 或 "newline" 将跳出拆分单元格。后两者将照常移动到新的行/列。

    所以删除额外的参数,这会破坏正确的拆分功能。

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

    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);
    

    视觉上是这样的:

    【讨论】:

      猜你喜欢
      • 2010-10-23
      • 1970-01-01
      • 2012-09-30
      • 2014-12-06
      • 2013-04-29
      • 2012-09-26
      • 2014-05-21
      • 2013-01-01
      • 1970-01-01
      相关资源
      最近更新 更多