我正在尝试将GridBagLayout
标签放置在两行中,但我希望一些标签跨越两行,而另一些标签则放置在彼此之上。由于和的属性中GridBagLayout
的比例尺寸功能,我需要使用。这是我正在寻找的布局:weightx
weighty
GridBagConstraints
+----------+----------+----------+----------+ | | | 标签C | | | 标签A | 标签B |---------| 标签D | | | | 标签E | | +----------+----------+----------+----------+
问题是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();
关于我所缺少的任何想法?