Я устанавливаю первый GridBagLayout
на главный JPanel
. К этой группе было добавлено десять других панелей с этим макетом (outerConstraints). Подпанели содержат количество текстов, которые должны быть размещены WEST с новым макетом и innerConstraints
. Но они сосредоточены.Swing: привязка GridBagLayouts не работает в другом GridBagLayout
После небольшого тестирования я узнал, что тексты/изображения помещены в WEST, но только если outerConstraints
не заполняют белую панель горизонтально. Проблема в том, что я не могу удалить эту команду, потому что мне нужно, чтобы каждая панель имела одинаковую ширину.
Есть ли возможность разрешить outerConstraints
заполнить И внести свой вложенный GridBagLayout
, положив текст влево?
setLayout(new GridBagLayout());
GridBagConstraints outerConstraints = new GridBagConstraints();
outerConstraints.insets = new Insets(5, 5, 5, 5);
outerConstraints.fill = GridBagConstraints.HORIZONTAL; // seems to be reason, but needed.
for (int i = 0; i < 10; i++) {
outerConstraints.gridx = i % 2;
outerConstraints.gridy = i/2;
JPanel agentVisitCard = new JPanel();
add(agentVisitCard, outerConstraints);
GridBagConstraints innerConstraints = new GridBagConstraints();
innerConstraints.anchor = GridBagConstraints.WEST; //fails
innerConstraints.insets = new Insets(5, 5, 5, 5);
GridBagLayout layout = new GridBagLayout();
agentVisitCard.setLayout(layout);
(...)
JLabel label = new JLabel("Agent " + (i + 1) + ":");
innerConstraints.gridx = 0;
innerConstraints.gridy = 0;
agentVisitCard.add(label, innerConstraints);
Попробуйте сделать внутренние контуры заполнены горизонтально. – gla3dr
Если это не сработает, попробуйте установить weightx на некоторое ненулевое значение (1.0 будет работать нормально). – gla3dr
Ну, я не могу сказать, что вы делаете. Похоже, ваш код пытается добавить 2 компонента в каждую строку, но я вижу только 1. Ваши панели выглядят одинаково для меня, поэтому, возможно, вы должны использовать GridLayout. Другой способ убедиться, что компоненты выровнены слева, - это создать JPanel с FlowLayout и LEFT_ALIGNMENT. Так что, возможно, у вас есть структура, например, основная панель, панель потока, панель агента. В любом случае опубликуйте надлежащую [SSCCE] (http://sscce.org/), которая демонстрирует проблему. Для лучшей помощи. – camickr