Как сделать позиционирование компонентов в макете mig

плохая часть на красной площади:

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, которую я пытаюсь использовать с разделенной функцией, но не работает.


person lehel    schedule 13.11.2018    source источник


Ответы (1)


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

Визуально это выглядит так:

введите описание изображения здесь

person Tamara Koliada    schedule 28.12.2018