如果我知道列位置,请在JTable中更改列标题

时间:2010-09-03 07:51:44

标签: java swing jtableheader

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

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

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

1 个答案:

答案 0 :(得分: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的列。