Я устанавливаю первый GridBagLayout
в основной JPanel
. К этой панели были добавлены десять других панелей с этим макетом (outerConstraints). Подпанели содержат количество текстов, которые должны быть размещены ЗАПАД с новой раскладкой и innerConstraints
. Но они центрируются.
Немного потестировав, я обнаружил, что тексты/изображения размещаются ЗАПАДНО, но только в том случае, если 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);