JTable setPreferredWidth 导致额外的列
JTable setPreferredWidth causing an extra column
这是我的代码
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);
}
不幸的是,当我 运行 这样做时,我在屏幕上看到了一个额外的列,它延伸到 window 大小。我不确定它来自哪里或如何修复它。
您确定这是由 table.getColumnModel().getColumn(z).setPreferredWidth(100);
调用引起的吗?我怀疑(虽然我自己没有尝试过)它更可能是由 table.getColumnModel().getColumn(z).setMaxWidth(100);
引起的,因为这设置了列的 maximum 宽度(总计 4 x 100px在你的情况下)而 table 本身被拉伸到超过 4 x 100px.
如果不希望table本身的宽度超过4 x 100px,是否可以不设置table的最大尺寸(http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setMaximumSize(java.awt.Dimension))?
这是我的代码
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);
}
不幸的是,当我 运行 这样做时,我在屏幕上看到了一个额外的列,它延伸到 window 大小。我不确定它来自哪里或如何修复它。
您确定这是由 table.getColumnModel().getColumn(z).setPreferredWidth(100);
调用引起的吗?我怀疑(虽然我自己没有尝试过)它更可能是由 table.getColumnModel().getColumn(z).setMaxWidth(100);
引起的,因为这设置了列的 maximum 宽度(总计 4 x 100px在你的情况下)而 table 本身被拉伸到超过 4 x 100px.
如果不希望table本身的宽度超过4 x 100px,是否可以不设置table的最大尺寸(http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setMaximumSize(java.awt.Dimension))?