使用 GridBagLayout 的 JTable 下面 Trim 列 space
Trim column space below JTable using GridBagLayout
我的 table 下面有两个按钮。但是一个按钮几乎占据了我table的所有空间。我想 trim 两个按钮之间的列空间。将 weight.x = 1
添加到我的左侧按钮不会向右推。
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);
输出:
与包含 JTable 的 JScrollPane 一起使用的 GridBagConstraints 应将其网格宽度 属性 设置为 2 以允许 JTable 占据两列,而其他所有内容都应使用 1 的网格宽度。
gbc.anchor = GridBagConstraints.FIRST_LINE_START;
gbc.insets = new Insets(20, 10, 0, 0);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = 2; // ****** add
JTable tbl = new JTable();
// .....
gbc.gridwidth = 1; // ****** add
注意事项:我通常为要添加的每个项目创建一个新的 GridBagConstraint 对象(除非我要添加真正的项目网格),或者使用实用程序方法创建一个对象,以避免 属性 传播错误。
您应该将 gbc.anchor
更改为 GridBagConstraints.LINE_END
。这会将您的 "Add" 按钮放在 "Remove" 按钮旁边...
我的 table 下面有两个按钮。但是一个按钮几乎占据了我table的所有空间。我想 trim 两个按钮之间的列空间。将 weight.x = 1
添加到我的左侧按钮不会向右推。
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);
输出:
与包含 JTable 的 JScrollPane 一起使用的 GridBagConstraints 应将其网格宽度 属性 设置为 2 以允许 JTable 占据两列,而其他所有内容都应使用 1 的网格宽度。
gbc.anchor = GridBagConstraints.FIRST_LINE_START;
gbc.insets = new Insets(20, 10, 0, 0);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = 2; // ****** add
JTable tbl = new JTable();
// .....
gbc.gridwidth = 1; // ****** add
注意事项:我通常为要添加的每个项目创建一个新的 GridBagConstraint 对象(除非我要添加真正的项目网格),或者使用实用程序方法创建一个对象,以避免 属性 传播错误。
您应该将 gbc.anchor
更改为 GridBagConstraints.LINE_END
。这会将您的 "Add" 按钮放在 "Remove" 按钮旁边...