如何隐藏JTable中的列,以便可以使用tableModel.getValueAt(row,colHidden)访问它们?

时间:2012-02-06 10:43:15

标签: java jtable

如何隐藏JTable中的列,以便仍然可以使用tableModel.getValueAt(row,colHidden)访问它们?

我这样做了,但后来我无法使用tableModel.getValueAt(row,6)访问第6列:

tbl.getColumnModel().getColumn(6).setPreferredWidth(0);
tbl.getColumnModel().getColumn(6).setMinWidth(0);
tbl.getColumnModel().getColumn(6).setMaxWidth(0);

错误信息是:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 6

2 个答案:

答案 0 :(得分:0)

RecvCallsTable.getColumnModel().removeColumn(RecvCallsTable.getColumnModel().getColumn(5));

这将从模型中删除列,即从用户的视图中删除,但仍可使用索引值访问。我一直使用它,它完美地运作

答案 1 :(得分:0)

您可以致电JTable#removeColumnJTable删除该列,同时仍可通过该模型访问该列。这比设置首选宽度

更好

但即使使用方法调用,您也应该能够访问该数据。您确定您的表有7列(因为第一列位于索引0,...)