这是我的代码
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);
}
不幸的是,当我运行它时,我在屏幕上得到一个额外的列,它延伸到窗口大小。我不确定它来自何处或如何解决它。
答案 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))?