2013-12-16 25 views
1

我會嘗試儘可能地解釋。我是小白,並一直在努力,現在解決這個問題了幾個小時......如何從jList更改爲JTable(來自DB的數據有很多列和行)

  • 我做了一個Java應用程序,顯示從它連接到數據庫的數據。 (ODBC/Microsoft SQL)。

  • 當我爲應用程序製作GUI時,我決定在jList中顯示數據。

  • 然後我意識到,信息太多了,我需要的列名等(因此一個JTable中)

我想要做的就是要改變這樣的的數據顯示,高達jTable而不是jList。但我不知道如何去做。

這是代碼看起來像現在:

GUI

private void jComboBox1_actionPerformed(ActionEvent e)throws SQLException { 

    String selected = jComboBox1.getSelectedItem().toString(); 
    String[]tmp = conn.showTable1(selected); 
    jList1.setListData(tmp); 

} 

控制器

public String[] showTable1(String table)throws SQLException { 
    ArrayList<String> list1 = dal.showTable1(table); 
    return list1.toArray(new String[list1.size()]); 
} 

數據訪問層

public ArrayList<String> showTable1(String table)throws SQLException { 
    ArrayList<String> list1 = new ArrayList<String>(); 

    Statement stmt = con.createStatement(); 
    String query1 = "select * from [" +table+"]"; 
     System.out.println(query1); 
    ResultSet rset = stmt.executeQuery(query1); 
    ResultSetMetaData rsmd = rset.getMetaData(); 
    while (rset.next()) { 
     String result = ""; 

     for(int i = 1; i < rsmd.getColumnCount(); i++) { 
      result += rset.getString(i) + "\t" + "\t"; 
    //  
     } 
      list1.add(result); 
     } 

    return list1; 

    } 

請幫忙!

親切的問候,克里斯

回答

2

了幾個簡單的建議見Table From Database

  1. 在網頁中搜索現有ResultSetTableModel
  2. 使用TableFromDatabase Example代碼
  3. 使用 此在博客
+0

1. 公共ResultSetTableModel(結果集RS)呈現的ListTableModel {(RS,0); } 2. ListTableModel模型= ListTableModel.createModelFromResultSet(的resultSet); JTable table = new JTable(model); – Chris

+0

我不明白,因爲我有組合框。當我在組合框中選擇一個字符串時,它會自動顯示jList中的數據.. – Chris

+0

@Chris,我不明白你的意見。組合框僅用於構建SQL查詢。一旦你有了ResultSet,你可以創建一個TableModel並在JTable中顯示數據。 – camickr