动态更改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(...)
‘将它们设置回来。
希望这可以帮助。