Java Swing Gridlayout ВЕРТИКАЛЬНОЕ ограничение - PullRequest
3 голосов
/ 16 января 2012

Можно ли добавлять компоненты в Gridlayout по вертикали? Я имею в виду следующий выше предыдущего?

Спасибо

Ответы [ 3 ]

3 голосов
/ 16 января 2012

Макеты, такие как BoxLayout и GridLayout, отображают компоненты сверху вниз, когда вы используете:

panel.add( someComponent );

, но вы всегда можете использовать:

panel.add(someComponent, 0);

для вставки компонентов сверху.

3 голосов
/ 16 января 2012

Нет, нет макета, который позволял бы вам укладывать вертикально снизу вверх, по крайней мере, я об этом знаю. Если вы хотите вертикальное наложение, вы можете использовать GridLayout с одним столбцом или BoxLayout с вертикальной осью. Вложив панели и комбинируя макеты, вы легко получите то, что вам нужно, например, панели с вертикальной компоновкой все выложены в горизонтальном контейнере.

1 голос
/ 16 января 2012

Хотя этот ответ не относится к Макет сетки , я настоятельно рекомендую использовать макет форм JGoodies.Это очень гибкий.http://www.jgoodies.com/freeware/forms/index.html

                          /* 1                    2      3       4    5                   6     7      8       9*/      
            String col1 = "left:max(20dlu;pref), 3dlu, 70dlu, 15dlu,left:max(10dlu;pref),10dlu, 70dlu, 70dlu, 70dlu";
                          /* 1   2     3   4  5   6    7   8    */
            String row1 = "  p, 5dlu, p, 3dlu, p, 5dlu, p, 9dlu, ";
            FormLayout layout = new FormLayout( col1, row1 + row2 + row3 + row4 + row5 + row6);

            JPanel panel = new JPanel(layout); 
             panel.setBorder(Borders.DIALOG_BORDER);

            // Fill the table with labels and components.
            CellConstraints cc = new CellConstraints();
            panel.add(createSeparator("Registration Information"), cc.xyw(1, 1, 7));
            panel.add(new JLabel("Patient ID"), cc.xy(1, 3));
            panel.add(pid, cc.xyw(3, 3, 1));
            panel.add(new JLabel("Date and Time"), cc.xy(5, 3));

Вы можете передать код для построения каждого компонента в любом месте в заданном макете, т.е. в столбцах и строках. Равномерное вертикальное расположение. Читайте технический документ: http://www.jgoodies.com/articles/forms.pdf

...