【问题标题】:Displaying data from database in JList在 JList 中显示数据库中的数据
【发布时间】:2012-08-26 23:47:26
【问题描述】:

我正在使用以下代码从数据库中检索数据,但我不知道如何在 JList 中显示它

Class.forName("oracle.jdbc.driver.OracleDriver");
Statement stmt = null;
ResultSet rs;                                                                          
Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1/SPL","root","PWD");
stmt=(Statement) conn.createStatement();
rs=stmt.executeQuery(query);
while (rs.next()) 
{
    String stadium = rs.getString("Stadium");
    String city = rs.getString("City");
}

但我想在JList 中显示列数据。你们能告诉我怎么做吗?


我正在使用以下代码,但它没有在我的框架上显示任何内容,你能告诉我我哪里错了吗?谢谢

 String query="SELECT * FROM Location";
 DefaultListModel model=new DefaultListModel();
 DefaultListModel model1=new DefaultListModel();
 try
 {                                              Class.forName("oracle.jdbc.driver.OracleDriver");
Statement stmt = null;
ResultSet rs;                                                                          
Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1/SPL","root","PWD");
stmt=(Statement) conn.createStatement();
rs=stmt.executeQuery(query);
while (rs.next()) 
{
String stadium = rs.getString("Stadium");
String city = rs.getString("City");
model.addElement(stadium);
model1.addElement(city);
}
JList list=new JList(model);
JList list1=new JList(model1);
f8.add(jpa1); //f8=frame name,jpa1=panel name
jpa1.add(list);                                 list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);                        list.setLayoutOrientation(JList.HORIZONTAL_WRAP);
list.setVisibleRowCount(1);
JScrollPane listScroller = new JScrollPane(list);                                          
}
catch(SQLException e)
{
System.out.println("Message   : " + e.getMessage());
}

【问题讨论】:

标签: java swing jdbc jlist


【解决方案1】:

JList 可能基于ListModel,因此您需要创建一个包含您的数据的ListModel,然后使用它来创建您的JList。我会创建一个Stadium 或其他类,有两个String 字段,namecity

public class Stadium {
    private String name;
    private String city;

    public Stadium(String name, String city){...}
    //toString()-method to make it display in a meaningful way in the JList
    public String toString(){ return name + " - " + city; }
}

然后你可以写类似的东西

...
DefaultListModel listModel = new DefaultListModel();
while (rs.next()) {
    String name = rs.getString("Stadium");
    String city = rs.getString("City");
    Stadium stadium = new Stadium(name, city)
    listModel.addElement(stadium);
}
JList list = new JList(listModel);

尚未尝试编译和测试此代码,但希望这一点对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 2019-04-08
    • 2012-08-21
    • 2011-07-18
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多