我有一个面板,它使用 GridbagLayout 显示来放置 3 个对象:一个按钮、组合框和一个 scrollPane。我希望按钮和组合框位于同一行(第 0 行)并占据整行。这就是我将它们放置在面板中的方式:
GridBagConstraints gc = new GridBagConstraints();
gc.fill = GridBagConstraints.BOTH;
gc.insets.set(10, 0, 10, 10);
add(comboBox, gc);
gc.gridx = 1;
gc.weightx = 1;
gc.insets.set(10, 0, 10, 0);
add(okButton, gc);
现在我希望滚动 Pane 占据整个底部行(第 1 行)。这就是我所做的:
gc.gridx = 0;
gc.gridy = 1;
gc.weighty = 1;
//gc.insets.set(0, 0, 0, 0);
add(scrollPane, gc);
然而,这只会使滚动 Pane 占据底行的第一列,因此它始终与组合框对齐。我如何让它占据整个底行而不仅仅是第一列?如果有帮助,愿意尝试不同的布局。我的想法是创建一个仅包含 scrollPane 的新面板并将其添加到当前面板,但如果有其他选择,我宁愿不这样做
这是当前面板
最佳答案
您需要设置 gridwidth= 2
以有效地为描述设置一个列跨度。
关于Java swing gridbaglayout 没有完全填满一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26643745/