JTable setPreferredWidth导致额外的列

时间:2015-04-16 09:09:53

标签: java swing jtable

这是我的代码

JTable table = new JTable(attributeValues, attributeNamesString);

table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

for(int z=0;z<table.getColumnCount();z++){
    table.getColumnModel().getColumn(z).setMinWidth(100);
    table.getColumnModel().getColumn(z).setMaxWidth(100);
    table.getColumnModel().getColumn(z).setPreferredWidth(100);
}

不幸的是,当我运行它时,我在屏幕上得到一个额外的列,它延伸到窗口大小。我不确定它来自何处或如何解决它。

enter image description here

1 个答案:

答案 0 :(得分:1)

您确定这是table.getColumnModel().getColumn(z).setPreferredWidth(100);来电引起的吗?我怀疑(虽然我自己没有尝试过),它更可能是由table.getColumnModel().getColumn(z).setMaxWidth(100);造成的,因为这会设置列的最大宽度(在你的情况下最多加上4 x 100px) )当桌子本身拉伸到4 x 100px以上时。

如果您不希望表格本身宽度超过4 x 100px,您是否也不能设置表格的最大尺寸(http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setMaximumSize(java.awt.Dimension))?