2012-02-23 140 views
2

我是新來的java。 如何從mysql獲取數據並將其顯示在Jlist中(Jlist名稱:JLISTF) 我對矢量和模型感到困惑。如何從mysql獲取數據到jList?

下面是我的JFrame的照片

黃色部分表示JList和它的名字是JLISTF 我想從MySQL顯示數據

謝謝enter image description here

代碼:

public class Inventory extends javax.swing.JFrame { 


     Connection connect = null; 
     ResultSet rs = null; 
     PreparedStatement pst = null; 
     ResultSet rs2 = null; 


    public void populateJList(JList ItemList, String query, Connection connection) throws SQLException 
{ 
    DefaultListModel model = new DefaultListModel(); //create a new list model 

    Statement statement = connection.createStatement(); 
    ResultSet resultSet = statement.executeQuery(query); //run your query 

    while (resultSet.next()) //go through each row that your query returns 
    { 
     String ItemList2 = resultSet.getString("ItemCode"); //get the element in column "item_code" 
     model.addElement(ItemList2); //add each item to the model 
    } 
    ItemList.setModel(model); 

    resultSet.close(); 
    statement.close(); 

} 


public Inventory() {..} 

    private void searchButtonActionPerformed(java.awt.event.ActionEvent evt) { ......} 

private void saveButton3ActionPerformed(java.awt.event.ActionEvent evt) { 
String inventcodef = inventCodeField.getText(); 
try{.........} 
catch() 
{...........} 
} 
+0

[平均javax.swing.JList](http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html)?你不明白什麼 - MySQL數據庫集成或基於Swing的UI實現? – home 2012-02-23 16:48:36

+0

我想填充JList到mysql,但我不知道如何啓動 – mix 2012-02-23 23:16:39

+0

@home我不知道我會替換什麼變量,因爲我真的不知道如何填充JList。有教程,但他們沒有真正解釋使用的變量。例如,在您給出的鏈接中,我將用我的JLIST變量名替換代碼,該變量名是JLISTF – mix 2012-02-23 23:26:44

回答

3

假設你有一個到數據庫的連接,你知道你想查詢什麼信息,你可以e以下方法填充您的JList。

import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

import javax.swing.DefaultListModel; 
import javax.swing.JList; 

... 

public void populateJList(JList list, String query, Connection connection) throws SQLException 
{ 
    DefaultListModel model = new DefaultListModel(); //create a new list model 

    Statement statement = connection.createStatement(); 
    ResultSet resultSet = statement.executeQuery(query); //run your query 

    while (resultSet.next()) //go through each row that your query returns 
    { 
     String itemCode = resultSet.getString("item_code"); //get the element in column "item_code" 
     model.addElement(itemCode); //add each item to the model 
    } 
    list.setModel(model); 

    resultSet.close(); 
    statement.close(); 

} 

您會將您的JLISTF變量作爲第一個參數傳遞給此函數。

以下行假定您的列名是「item_code」,您將要用您的列實際名稱替換此列。

String itemCode = resultSet.getString("item_code"); 

該函數創建一個新模型(請參閱How to Use Models),然後執行您的查詢。它會獲取查詢返回的每個值並將其添加到新模型中。 list.setModel(model)然後告訴列表開始使用你的新模型。

+0

非常感謝@lunchbox對於像我這樣的初學者給出的明確解釋。我會試試:) – mix 2012-02-24 08:28:59

+0

我改變了item_code到我想要檢索的數據,但它仍然不會顯示在我的JList中。我是否需要像在Jcombobox中那樣添加一些類似formWindowOpened的東西? – mix 2012-02-24 10:04:58

+0

是的,你需要添加一行類似於這個'populateJList(JLISTF,「SELECT item_code FROM your_table」,connection);'在你創建JLISTF並創建Connection之後的某處。 – Lunchbox 2012-02-24 16:16:54