2013-05-09 118 views
0

有沒有人有任何好的教程來填充JList與SQL這樣的查詢表。每當您創建或刪除表時,JList都會得到更新。用表格填充JList

SELECT name FROM sqlite_master WHERE type = 'table'; 

任何幫助,將不勝感激。

+0

使用此查詢的數據庫中創建一個類加載列表。然後在你的swing類中使用這個類來獲取字符串列表,並填充JList。與數據庫相關的代碼不應與展示相關的代碼處於相同的類中。向您的用戶界面添加刷新按鈕以重新執行查詢並刷新列表。或者每X秒自動刷新一次。 – 2013-05-09 13:57:10

回答

1

這很簡單,您不需要教程:)使用this構造函數從元素的關閉列表構建您的JList

迭代查詢結果光標,並使用從DB獲取的元素填充Vector。然後使用Vector作爲一個底層的數據容器(模型)用於構建你JList

Vector<String> elements = new Vector<String>(); 
while (query.next()) { 
    // or whatever is appropriate 
    elements.add(query.getString("name")); 
} 
Jlist mylist = new Jlist(elements); 

你應該拆分數據庫查詢代碼(型號相關)從GUI構建(視圖),以緩解未來修的和解耦結構在所謂的MVC結構中,但這不在這個問題的範圍之內。

+0

謝謝,我會試試看。 – user2210209 2013-05-09 14:47:40

+0

由於您的問題已解決,請考慮[接受答案](http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work/65088#65088) – 2013-05-09 14:53:26

1

您可以使用DefaultListModel看到這個例子:

//...... 
    DefaultListModel listModel = new DefaultListModel(); 
    String query = "SELECT name FROM sqlite_master WHERE type = 'table'"; 
    rs = st.executeQuery(sql); 
    while(rs.next){ 
    listModel.addElement(rs.getObject("name"));// I think you want get this field 
    } 

    list.setModel(listModel); 
+0

謝謝,我會嘗試它。 – user2210209 2013-05-09 14:48:15