2013-04-08 5 views
3

Я хочу изменить заголовок моего JTable, который отображает данные из базы данных SQL Server, поскольку он также отображает то же имя столбца в моей базе данных. Мне просто нужны сами данные, а не имя столбца.Формат JTable Header

вот код, который я использовал для отображения данных:

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 к Фамилия, имя-отчество до имени, так далее и т. Д.

+0

Я бы изменил запрос, чтобы получить каждый столбец и изменить имена. В противном случае я бы поискал имена столбцов внутри 'column_name' и менял имя (конечно, это последнее очень наивно). –

+0

Не связано с вопросом, но было бы лучше изменить 'Vector by' ArrayList': [Почему класс Java Vector считается устаревшим или устаревшим?] (Http://stackoverflow.com/q/1386275/1065197) –

+0

@LuiggiMendoza на самом деле не знал, что такое Vector, я просто следую инструкциям на веб-сайте, которые я google для отображения данных в JTable, проблема с результатом заключается в том, что есть один отсутствующий файл с типом ДЕНЕЖНЫХ ДАННЫХ, и он должен быть в последняя часть, но она не вышла, это потому, что я использовал Vector? –

ответ

4

Изменение вашего SELECT * FROM dbo.Patients в SELECT pIDNo AS 'Patient ID', pLName AS '.... это самый простой способ. Именование имен столбцов вместо использования * происходит быстрее.

+0

Знаете ли вы, как я могу отобразить ТИП ДЕНЕГ ДАННЫХ для JTable? –

+0

@CrystalMaiden: Это новый вопрос; сначала просмотрите [это] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#editrender). – trashgod

4

Я бы попытался изменить ваш выбор:

вместо

SELECT * FROM dbo.Patients

Использование

SELECT pId as "Patient ID", ...

Смежные вопросы