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;
}
請幫忙!
親切的問候,克里斯
1. 公共ResultSetTableModel(結果集RS)呈現的ListTableModel {(RS,0); } 2. ListTableModel模型= ListTableModel.createModelFromResultSet(的resultSet); JTable table = new JTable(model); – Chris
我不明白,因爲我有組合框。當我在組合框中選擇一個字符串時,它會自動顯示jList中的數據.. – Chris
@Chris,我不明白你的意見。組合框僅用於構建SQL查詢。一旦你有了ResultSet,你可以創建一個TableModel並在JTable中顯示數據。 – camickr