Вопрос

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

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

Это было полезно?

Решение

Я бы предложил Расположение сетки и Ограничения 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);

Другие советы

Это является как работает GridLayout.

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

Судя по вашему вопросу, похоже, что Потоковое описание это больше соответствует тому, что вы ищете.

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

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

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

Вертикальное сетчатое описание

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top