动态更改JTable中的列标题文本

我有一个包含3列的表格,标题中包含以下值:’No.’,’X [mm]’,’Y [mm]’。 此表包含以毫米为单位的点坐标。 我有一个复选框,用于检查表格应该重新填充以显示以英寸为单位的坐标。 此外,列标题值应为:’No’,’X [in]’,’Y [in]’。

总之,我想动态更改表的标题文本。

详细信息:该表是JTable的子类。 此外,已将’DefaultTableModel’的子类设置为表的模型。 我在datamodel子类的构造函数中提供了头值。

任何想法? 我的应用程序只与jdk v1.4兼容,所以如果解决方案与verion兼容将会很好:)

您可以直接更新TableColumnModel:

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

如果您有列号使用该代码

  jtable.getColumnModel().getColumn(5).setHeaderValue("newHeader"); 

我不能在这里测试但是熟悉这个方法’ [DefaultTableModel.setColumnIdentifiers(...)][1] ‘应该做你想要的。

基本上,你运行’ DefaultTableModel.getColumnCount() ‘来找出多少列(除非你已经知道)。 然后运行’ DefaultTableModel.getColumnName(int ColumnIndex) ‘来获取每个的名称,以你想要的方式改变它并将它放在一个数组中。 之后,使用’ DefaultTableModel.setColumnIdentifiers(...) ‘将它们设置回来。

希望这可以帮助。