Java GridLayout - PullRequest
       23

Java GridLayout

0 голосов
/ 07 декабря 2009

Есть ли способ добавить элементы в gridlayout, который добавляет их горизонтально, а не вертикально? По сути, я хочу заполнить всю строку элементами, прежде чем она начнется со следующей.

Надеюсь, я прояснил свой вопрос.

Ответы [ 5 ]

6 голосов
/ 07 декабря 2009
2 голосов
/ 07 декабря 2009

Я бы предложил GridBagLayout и GridBagConstraints

Это очень похоже на GridLayout, но с помощью GridBagConstraints вы можете указать координаты x и y компонента, а также вы можете выполнять интервалы столбцов и строк.

Это будет выглядеть примерно так:

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

GridBagLayout layout = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();

JPanel panel = new JPanel();
JLabel label = new JLabel("foo");

panel.setLayout(layout);

c.gridx = 0;
c.gridy = 0;
panel.add(label, c);
0 голосов
/ 07 декабря 2009

На самом деле вы должны использовать GroupLayout Это новое (начиная с jdk 1.6) и довольно крутое. Это дает вам тонну гибкости в макете.

0 голосов
/ 07 декабря 2009

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

VerticalGridLayout

0 голосов
/ 07 декабря 2009

GridLayout, как следует из названия, размещает компоненты в соответствии с количеством столбцов и строк, указанных в конструкторе , и будет перемещаться к следующей строке, как только вы добавите указанное число компоненты.

Из вашего вопроса кажется, что FlowLayout больше соответствует тому, что вы ищете.

Редактировать : Я не уверен, почему, но если указать число строк равным 0 (например, new GridLayout(0, 9), похоже, он работает правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...