我有一个包含3列的表,其标题中包含以下值:'No.','X [mm]','Y [mm]'。此表包含以毫米为单位的点坐标。我有一个复选框,检查表格应该重新填充以显示以英寸为单位的坐标。此外,列标题值应为:'No','X [in]','Y [in]'。
简而言之,我想动态更改表的标题文本。
详细说明: 该表是JTable的子类。此外,已将'DefaultTableModel'的子类设置为表的模型。我在datamodel子类的构造函数中提供了头值。
有什么想法吗?我的应用程序只与jdk v1.4兼容,所以如果解决方案与verion兼容将会很好:)
答案 0 :(得分:26)
您可以直接更新TableColumnModel:
JTableHeader th = table.getTableHeader();
TableColumnModel tcm = th.getColumnModel();
TableColumn tc = tcm.getColumn(0);
tc.setHeaderValue( "???" );
th.repaint();
答案 1 :(得分:10)
如果列号使用该代码
jtable.getColumnModel().getColumn(5).setHeaderValue("newHeader");
答案 2 :(得分:2)
我无法在这里测试,但我很熟悉这种方法“[DefaultTableModel.setColumnIdentifiers(...)][1]
”可以做你想做的事。
基本上,你运行'DefaultTableModel.getColumnCount()
'来找出有多少列(除非你已经知道)。然后运行“DefaultTableModel.getColumnName(int ColumnIndex)
”获取每个名称,按照您想要的方式更改它并将其放入数组中。之后,您使用“DefaultTableModel.setColumnIdentifiers(...)
”将其设置回来。
希望这有帮助。