2010-09-03 62 views
1

如果我知道列位置,是否可以将Jtable选项卡中的列标题从“Name”更改为“Surname”?我想在第二个或第一个标签中更改列名,而不是最后一个。如果我知道列位置,更改JTable中的列标题

使用此代码,我只能更改最后一个选项卡中的列标题。我有4个选项卡。

JTableHeader th = table.getTableHeader(); 
TableColumnModel tcm = th.getColumnModel(); 
TableColumn tc = tcm.getColumn(0); 
tc.setHeaderValue("???"); 
th.repaint(); 

回答

1

你只需要通过使用列标识符来代替你的列索引:

JTableHeader th = table.getTableHeader(); 
TableColumnModel tcm = th.getColumnModel(); 
TableColumn tc = tcm.getColumn(tcm.getColumnIndex("Name")); // may not work, see note below 
tc.setHeaderValue("???"); 
th.repaint(); 

TableColumnModel#getColumnIndex(Object)作品与列标识符。大多数情况下,列标识符和列标题值是相同的。但是,在某些情况下,它们可能会有所不同(通常在使用i18n作为列标题时)。但在这种情况下,我想你已经确定了你的列与一个恒定的ID。