Я пытаюсь использовать GridBagLayout
для размещения меток в двух строках, но я хочу, чтобы некоторые метки занимали обе строки, а другие располагались друг над другом.Мне нужно использовать GridBagLayout
из-за функциональности пропорционального размера в свойствах weightx
и weighty
GridBagConstraints
.Это макет, который я ищу:
+----------+----------+----------+----------+
| | | labelC | |
| labelA | labelB |----------| labelD |
| | | labelE | |
+----------+----------+----------+----------+
Проблема в том, что labelE
находится под LabelA
.Вот часть макета моего кода:
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
this.setLayout(gridBag);
c.fill = GridBagConstraints.BOTH;
c.gridwidth = 1;
c.gridheight = 2;
c.weighty = PANEL_HEIGHT;
gridbag.setConstraints(labelA, c);
this.add(labelA);
gridbag.setConstraints(labelB, c);
this.add(labelB);
c.gridheight = 1;
c.weighty = TOPROW_HEIGHT;
gridbag.setConstraints(labelC, c);
this.add(labelC);
c.gridheight = 2;
c.gridwidth = GridBagConstraints.REMAINDER;
c.weighty = PANEL_HEIGHT;
gridbag.setConstraints(labelD, c);
this.add(labelD);
c.gridheight = 1;
c.gridwidth = 1;
c.weighty = BOTROW_HEIGHT;
gridbag.setConstraints(labelE, c);
this.add(labelE);
this.validate();
Есть идеи о том, что мне не хватает?