Java swing gridbaglayout 没有完全填满一行

标签 java swing combobox jpanel jscrollpane

我有一个面板,它使用 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 的新面板并将其添加到当前面板,但如果有其他选择,我宁愿不这样做

这是当前面板

Image of the current panel

最佳答案

您需要设置 gridwidth= 2 以有效地为描述设置一个列跨度。

关于Java swing gridbaglayout 没有完全填满一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26643745/

相关文章:

java - JLabel滚动后消失

combobox - PyQT4 : Adding combobox in Qtableview

带有 cellfactory 的 javafx ComboBox 不显示所选项目

excel - 在代码中添加多个组合框

java - Thread.sleep(毫秒)精度

java - Maven安装但不会执行

java - gradle从 war 依赖项中导入了什么,我如何控制/操纵 war 内容?

java - 如何将通过方法创建的 JPanel 添加到 cardLayout.add();

java - 首先Java : Target Random number is always zero

java - 如何从 Java 中的 Jtable 中删除多个列?