代码之家  ›  专栏  ›  技术社区  ›  sv_in

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

  •  5
  • sv_in  · 技术社区  · 17 年前

    我有一个表,其中有3列的标题中有以下值:“否”、“x[mm]”、“y[mm]”。此表包含以毫米为单位的点坐标。我有一个复选框,用于检查表格应重新填充以显示以英寸为单位的坐标。此外,列标题值应为:“否”、“x[in]”、“y[in]”。

    简而言之,我希望动态地更改表的标题文本。

    详细地说: 该表是jtable的子类。此外,“DefaultTableModel”的子类已设置为表的模型。我已经在datamodel子类的构造器中提供了头值。

    有什么想法吗?我的应用程序仅与JDK v1.4兼容,因此如果该解决方案与Verion兼容,那就更好了:)

    3 回复  |  直到 13 年前
        1
  •  25
  •   camickr    17 年前

    您可以直接更新TableColumnModel:

    JTableHeader th = table.getTableHeader();
    TableColumnModel tcm = th.getColumnModel();
    TableColumn tc = tcm.getColumn(0);
    tc.setHeaderValue( "???" );
    th.repaint();
    
        2
  •  10
  •   Jeus    13 年前

    如果您有列号,请使用该代码

     jtable.getColumnModel().getColumn(5).setHeaderValue("newHeader");
    
        3
  •  2
  •   NawaMan    17 年前

    我不能在这里测试,但我熟悉这种方法 [DefaultTableModel.setColumnIdentifiers(...)][1] “应该做你想做的。

    基本上,你跑步 DefaultTableModel.getColumnCount() '找出有多少列(除非你已经知道)。然后你跑 DefaultTableModel.getColumnName(int ColumnIndex) '要获取每个的名称,请按需要更改它,并将其放入数组中。在那之后,你用‘ DefaultTableModel.setColumnIdentifiers(...) '的。

    希望这有帮助。