我的表格下方有两个按钮。但是一个按钮几乎占据了我桌子的所有空间。我想修剪两个按钮之间的列空间。将weight.x = 1
添加到我的左侧按钮不会向右推。使用GridBagLayout修剪JTable下方的列空间
gbc.anchor = GridBagConstraints.FIRST_LINE_START;
gbc.insets = new Insets(20, 10, 0, 0);
gbc.gridx = 0;
gbc.gridy = 0;
JTable tbl = new JTable();
tbl.setPreferredScrollableViewportSize(new Dimension(500, 200));
tbl.setRowHeight(30);
JScrollPane pane = new JScrollPane(tbl);
panelCenter.add(pane, gbc);
gbc.anchor = GridBagConstraints.FIRST_LINE_START;
gbc.gridx = 0;
gbc.gridy = 1;
JButton btnAdd = new JButton("Add");
panelCenter.add(btnAdd, gbc);
gbc.gridx = 1;
gbc.gridy = 1;
gbc.weightx = 1;
gbc.weighty = 1;
JButton btnRemove = new JButton("Remove");
panelCenter.add(btnRemove, gbc);
'gridwidth'解决了我的问题。你能举例如属性传播错误吗?还没遇到那个。 – Francisunoxx
@Francisunoxx:如果在使用相同的gbc变量和对象时添加JScrollPane后未调用'gbc.gridwidth = 1;',则会发生此错误。现在所有组件都将以2的网格宽度添加。 –
我看到我出错的地方。我只需要创建一个实用程序方法,以便它们不能共享相同的gbc。我感谢您的帮助和提示! – Francisunoxx