【问题标题】:Java - ResultSet change Db column names to show in JTableJava - ResultSet 更改 Db 列名称以显示在 JTable 中
【发布时间】:2014-06-14 09:31:23
【问题描述】:

我正在使用 rs2xml.jar 将数据填充到表中。这是我显示表格列和数据的代码

ResultSet rs = stmt.executeQuery("select * from employees");

table_employees.setModel(DBUtiles.resultSetToTableModel(rs));

此代码成功运行但我想重命名列。我不想在我的表中显示数据库列。

【问题讨论】:

    标签: java swing jtable jtableheader


    【解决方案1】:

    您需要从TableColumnModel 更新TableColumn

    TableColumnModel tcm = table.getColumnModel();
    tcm.getColumn(0).setHeaderValue("whatever you want");
    

    或者您可以在创建 JTable 时覆盖 getColumnName(...) 方法:

    JTable table = new JTable( DBUtilities.resultSetToTableModel(rs)
    {
        private String[] columnNames = 
        {
            "Column 1",
            "Column 2",
            "Column ..."
        };
    
        @Override
        public String getColumnName(int col) 
        {
            return columnNames[col];
        }
    };
    

    【讨论】:

      【解决方案2】:

      如果您希望将 DB 值与 java 列名一起使用,您可以考虑使用下面的代码,并且您可以使用 jTable 的 TableModel 属性在 java 中设置列​​名。

      DefaultTableModel tmodel = (DefaultTableModel) jTable1.getModel();
      tmodel.addRow(new Object[] {....});
      jTable1.setModel(tmodel);
      

      希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        您可以根据您的选择从 Sql 查询中获取列名,例如

        SELECT column name as 'Student Id', Column Name as 'Student name' FROM student;
        

        查询根据您的决定为您提供列名的结果。

        【讨论】:

          猜你喜欢
          • 2016-03-07
          • 1970-01-01
          • 2013-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-29
          相关资源
          最近更新 更多