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

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

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

最佳答案

您只需要使用列标识符来替换列索引:

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标识了您的列。

07-24 21:24