2013-04-08 48 views
3

我想更改我的JTable的頭,該頭顯示來自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爲名字,等等等等......

+0

我會改變查詢來檢索每一列並更改名稱。否則,我會查找'column_name'內的列名並更改名稱(當然,這最後是非常天真的)。 – 2013-04-08 04:37:27

+0

與問題無關,但最好通過'ArrayList'更改'Vector:[爲什麼Java Vector類被認爲已經過時或被棄用?](http://stackoverflow.com/q/1386275/1065197) – 2013-04-08 04:38:39

+0

@LuiggiMendoza真的不知道Vector是什麼,我只是遵循一個網站上的一些說明,我谷歌顯示數據的JTable,結果的問題是,有一個缺少數據,它有一個金錢數據類型,它應該是最後一部分,但它沒有出來,是因爲我用Vector? – 2013-04-08 05:08:07

回答

4

改變你SELECT * FROM dbo.PatientsSELECT pIDNo AS 'Patient ID', pLName AS '.... 是最簡單的方法。而且,命名列名稱而不是使用*更快。

+0

你知道我該如何顯示一個MONEY DATA TYPE到JTable? – 2013-04-08 05:17:07

+0

@CrystalMaiden:這是一個新問題;首先查看[this](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#editrender)。 – trashgod 2013-04-08 07:31:17

4

我會嘗試修改您的選擇:

代替

SELECT * FROM dbo.Patients

使用

SELECT pId as "Patient ID", ...