JTable标头格式

时间:2013-04-08 04:32:49

标签: java swing jtable jtableheader database-metadata

我想更改显示SQL Server数据库中数据的JTable标题,因为它在我的数据库中也显示相同的列名。我只需要数据本身,而不是列名。

这是我用来显示数据的代码:

public void search() throws Exception{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String url = "jdbc:odbc:*****";
            String user = "*****";
            String pass = "*****";
            Connection con =  DriverManager.getConnection(url, user, pass);
            Statement state = con.createStatement();
            ResultSet rs = state.executeQuery("SELECT * FROM dbo.Patients");
            ResultSetMetaData rsmetadata = rs.getMetaData();
            int columns = rsmetadata.getColumnCount();
            DefaultTableModel dtm = new DefaultTableModel();
            Vector column_name = new Vector();
            Vector data_rows = new Vector();

            for (int i=1; i<columns;i++){
                column_name.addElement(rsmetadata.getColumnName(i));
            }
            dtm.setColumnIdentifiers(column_name);

            while(rs.next()){
                data_rows = new Vector();
                for (int j=1; j<columns; j++){
                data_rows.addElement(rs.getString(j));
                }
                dtm.addRow(data_rows);
            }
            tblPatient.setModel(dtm);
    }

这就是结果:

THIS

我想将pIDNo更改为患者ID,将pLName更改为姓氏,将pFName更改为名字,依此类推......

2 个答案:

答案 0 :(得分:4)

我会尝试修改你的选择:

代替

SELECT * FROM dbo.Patients

使用

SELECT pId as "Patient ID", ...

答案 1 :(得分:4)

SELECT * FROM dbo.Patients更改为SELECT pIDNo AS 'Patient ID', pLName AS '.... 是最简单的方法。而且,命名列名而不是使用*更快。