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

sv_*_*_in 7 java swing jtable

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

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

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

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

cam*_*ckr 29

您可以直接更新TableColumnModel:

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

  • 如果这是一个问题,您可以在最初创建表后使用table.setAutoCreateColumnsFromModel(false) (3认同)

Jeu*_*eus 10

如果您有列号使用该代码

 jtable.getColumnModel().getColumn(5).setHeaderValue("newHeader");
Run Code Online (Sandbox Code Playgroud)

  • 你需要在代码之后调用`jtable.getTableHeader().repaint();`来更新表. (4认同)