2012-02-23 4 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? – home

+0

Я хочу заполнить JList для mysql, но я не знаю, как начать – mix

+0

@home Я не знаю, какие переменные заменить, потому что я действительно не понимаю, как заполнить JList. Есть учебники, но они не объясняют используемые переменные. Например, в ссылке, которую вы указали, где я буду заменять код своим именем JLIST, которое является JLISTF – mix

ответ

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

+0

Я изменил item_code на данные, которые хочу получить, но все же он не отображается в моем JList. Нужно ли добавлять что-то вроде formWindowOpened, как в Jcombobox? – mix

+0

Да, вам нужно будет добавить строку, похожую на эту 'populateJList (JLISTF,« SELECT item_code FROM your_table », соединение);' где-то после создания JLISTF и после создания вашего соединения. – Lunchbox

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