java - 从数据库 varchar 数据创建列表 - NetBeans + Derby

标签 java swing netbeans derby jlist

我的问题是我不知道如何使用我的 derby 数据库中的一些数据创建列表(来自 NetBeans 的 Jlist)

例如:

我有一个表单,保存来自“客户”的 ID、姓名、电话和电子邮件,我想在列表中显示我以前注册的客户的所有姓名,问题是我需要转换 varchar数据到列表模型中。我怎样才能做到这一点?我尝试了这个,但没有成功:

    while (rs.next()){
        int id_col = rs.getInt("clientID");
        String name = rs.getString("clientName");

        client_listClients.setText(name);       
    }

它说“无法找到.setText的符号”

编辑使用DefaultListModel

工作结果!

public void DoConnect( ) {

    DefaultListModel model = new DefaultListModel();
    client_listClients.setModel(model);

    try {
        String host = "jdbc:derby://localhost:1527/ANAIA_DB";
        String uName = "*****";    
        String uPass = "*****";
        con = DriverManager.getConnection(host, uName, uPass);

        stmt = con.createStatement();
        String sql = "SELECT * FROM APP.CLIENT";
        rs = stmt.executeQuery(sql);


        while (rs.next()){

            int id_col = rs.getInt("clientID");       
            String name = rs.getString("clientName");
            model.addElement(name);
        }
    } catch (SQLException err) {
        JOptionPane.showMessageDialog(main.this, err.getMessage());
    }
}

谢谢@peeskillet

最佳答案

"It says that "couldant find symbol" for .setText"

JList 没有方法setText()。如有疑问,请阅读docs

相反,您需要使用ListModel。如果您不想创建自己的,可以使用提供的 DefaultListModel执行。这里有方法 addElement

您首先需要使用模型声明您的列表。

DefaultListModel model = new DefaultListModel();
JList client_listClients = new JList(model);

然后你可以使用方法addElement,它会在所有添加完成后自动更新UI。无需对列表执行任何操作。

while (rs.next()){

    String name = rs.getString("clientName");
    model.addElement(name);

}

您可以在How to use Lists查看更多信息,并关注 Creating a Model 部分

关于java - 从数据库 varchar 数据创建列表 - NetBeans + Derby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23050743/

相关文章:

Java Swing : Basic understanding of JComponent/JPanel

java - BufferedImage 未在 JPanel 内呈现

c++ - 运行失败(退出值 -1.073.740.940 )

netbeans - 是否可以在 Netbeans 7.1 中进行实时共同编辑?

java - Selenium IE 驱动程序找不到新打开的窗口

java - ClassCastException : Cannot be cast to com. sun.xml.internal.bind.v2.runtime.reflect.Accessor

java - Netbeans(用于 c/c++ 的 MinGW 编译器)可以调用任意 C/C++ DLL(在 VS'05 中编译)吗?

java - 多个 Swingbuilder 实例?

java - 如何在定时器程序中实现 Action 监听器?

java数据库连接检索