设置宽度后消除JTable中的空白白色Space

Eliminating Blank White Space in JTable After Setting Width

我正在尝试在 Java 中设置 table 的大小。

    pTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    pTable.getColumnModel().getColumn(0).setPreferredWidth(120);
    pTable.getColumnModel().getColumn(1).setPreferredWidth(100);

table 在我的框架中的正确位置,但在最后一列的右侧有这个不必要的空白 space。 这是我得到的:

我只想删除名字栏右侧的空白 space。

请不要锁定这个问题,那里有一个类似的问题,但它没有任何对我有任何帮助的信息。

JTable 具有预定义的首选大小。

您可以通过执行以下操作来重置它:

JTable table = new JTable(5, 2);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.getColumnModel().getColumn(0).setPreferredWidth(120);
table.getColumnModel().getColumn(1).setPreferredWidth(100);
table.setPreferredScrollableViewportSize(table.getPreferredSize());

现在宽度将是列的宽度,当然高度也将是所有行的高度。

但是,如果您使用 BorderLayout.LINE_START 作为约束将滚动窗格添加到框架,则 table 的宽度将保留,高度将随框架的高度而变化。