我想添加一些列到表(Swing JTable)。其中一些將具有默認大小(例如250),其他將被隱藏(因此它們的大小將爲0)。我用這個代碼:JTable隱藏並顯示列
model = new DefaultTableModel();
table = new JTable(model);
setAutoResizeMode(AUTO_RESIZE_OFF);
for (int i = 1; i < COLUMN_NAMES.length; i++) {
model.addColumn(COLUMN_NAMES[i]);
if (show[i]) show(index);
else hide(index);
}
........
private void hide(int index) {
TableColumn column = getColumnModel().getColumn(index);
column.setMinWidth(0);
column.setMaxWidth(0);
column.setWidth(0);
column.setPreferredWidth(0);
doLayout();
}
private void show(int index) {
final int width = 250;
column.setMinWidth(15);
column.setMaxWidth(width);
column.setWidth(width);
column.setPreferredWidth(width);
doLayout();
}
問題是在顯示錶時,所有列都顯示(沒有隱藏)和它們的大小不是250,但他們有一樣的大小。
我如何得到想要的效果?
請查看Swing-genius StanislavL的答案:[hide-column-in-jtable-temporary](http://stackoverflow.com/questions/5270032/hide-column-in-jtable-temporary) –
不錯的鏈接:) +1 – mprabhat