Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从java中的数据库填充Jcombobox_Java_Database_Swing_Jcombobox - Fatal编程技术网

无法从java中的数据库填充Jcombobox

无法从java中的数据库填充Jcombobox,java,database,swing,jcombobox,Java,Database,Swing,Jcombobox,我试图从数据库中获取信息来填充Jcombobox,我试图使用以下代码,但它们都不起作用,在所有这些代码中,组合框在运行时都没有被清理 第一次尝试 try { con = Connectionz.getConnection();//Connection Object pst = con.prepareStatement("SELECT * AS achooserfill FROM Login_Users WHERE

我试图从数据库中获取信息来填充Jcombobox,我试图使用以下代码,但它们都不起作用,在所有这些代码中,组合框在运行时都没有被清理

第一次尝试

try {
                    con = Connectionz.getConnection();//Connection Object 
                    pst = con.prepareStatement("SELECT * AS achooserfill FROM Login_Users WHERE [C Team Lead] =?");
                    pst.setString(1, va);
                    rs = pst.executeQuery();

                    while (rs.next()) {
                        achooser.removeAll();
                        achooser.addItem("Please select agent");
                        achooser.addItem(rs.getString("achooserfill"));

           }
     }catch(Exception e){
         System.err.println(e);
     }
第二次尝试

 try {
                con = Connectionz.getConnection();//Connection Object 
                pst = con.prepareStatement("SELECT * FROM Login_Users WHERE [C Team Lead] =?");
                pst.setString(1, va);
                rs = pst.executeQuery();

                while (rs.next()) {
                    achooser.removeAll();
                    achooser.addItem("Please select agent");
                    achooser.addItem(rs.getString("[VA #]"));

       }
 }catch(Exception e){
     System.err.println(e);
 }
第三次尝试

 try {
                con = Connectionz.getConnection();//Connection Object 
                pst = con.prepareStatement("SELECT [VA #] FROM Login_Users WHERE [C Team Lead] =?");
                pst.setString(1, va);
                rs = pst.executeQuery();

                while (rs.next()) {
                    achooser.removeAll();
                    achooser.addItem("Please select agent");
                    achooser.addItem(rs.getString("[VA #]"));

       }
 }catch(Exception e){
     System.err.println(e);
 }
在所有情况下,结果都是一样的

我真的很感激任何类型的信息或任何资源来解决这种情况

在所有这些组合框中,组合框都没有被清理

removeAll()
方法是
容器的方法,而不是组合框

你想要:

achooser.removeAllItems();
从组合框中删除项目

这个语句应该在循环之外

此外,对于类似的内容,您甚至验证了结果集是否包含数据。首先,您应该对数据进行硬编码,以证明
addItem()
方法有效。然后,一旦您知道逻辑在工作,就可以通过从数据库获取数据使代码更加动态

在所有这些组合框中,组合框都没有被清理

removeAll()
方法是
容器的方法,而不是组合框

你想要:

achooser.removeAllItems();
从组合框中删除项目

这个语句应该在循环之外


此外,对于类似的内容,您甚至验证了结果集是否包含数据。首先,您应该对数据进行硬编码,以证明
addItem()
方法有效。一旦你知道逻辑在起作用,你就可以通过从数据库中获取数据使代码更加动态。

我喜欢@camickr的评论,所以我修改了我的答案。尝试从结果集填充模型,然后声明JComboBox:

MutableComboBoxModel model = new DefaultComboBoxModel();
while (rs.next()){ 
    model.addItem(rs.getString("achooserfill"));
}
JComboBox achooser = new JComboBox(model);

我喜欢@camickr的评论,所以我修改了我的答案。尝试从结果集填充模型,然后声明JComboBox:

MutableComboBoxModel model = new DefaultComboBoxModel();
while (rs.next()){ 
    model.addItem(rs.getString("achooserfill"));
}
JComboBox achooser = new JComboBox(model);


您的问题可能不是resultset检索。您能否共享声明和配置achooser的代码?什么是
va
?您是否尝试过执行SQL查询?当你用
va
替换
并运行它时,
从[C团队领导]=”的登录用户那里选择*返回什么?还有(只是好奇),为什么你要为每个结果将
请选择代理
添加到你的组合框中?@BillHorvath我刚刚创建了de[chooser]我只是用netbeans创建了对象,我是否需要用代码创建对象并定义一个特定的特性来允许它?(我是新手抱歉)@user2004685感谢您的快速响应,va是一个变量,用户登录后即定义它是一个唯一的用户标识号。如果我替换呢?这不起作用,你是对的,我必须把这两个请求从现在起删除,谢谢!!!您的问题可能不是resultset检索。您能否共享声明和配置achooser的代码?什么是
va
?您是否尝试过执行SQL查询?当你用
va
替换
并运行它时,
从[C团队领导]=”的登录用户那里选择*返回什么?还有(只是好奇),为什么你要为每个结果将
请选择代理
添加到你的组合框中?@BillHorvath我刚刚创建了de[chooser]我只是用netbeans创建了对象,我是否需要用代码创建对象并定义一个特定的特性来允许它?(我是新手抱歉)@user2004685感谢您的快速响应,va是一个变量,用户登录后即定义它是一个唯一的用户标识号。如果我替换呢?这不起作用,你是对的,我必须把这两个请求从现在起删除,谢谢!!!是的,但是默认模型是DefaultComboxModel。请注意,我已经有一段时间没有使用Swing了。您可能会发现更好的方法是声明模型,将行项目添加到模型中,然后在填充模型后创建选择器。@BillHorvath感谢您的回答和信息,我创建了模型,但不起作用,因此如果我理解正确,我应该尝试创建一个DefaultCombobox模型,将项目添加到模型,然后将模型指定给选择器?再次感谢
,但这不是被问到的问题
-是的,但有时你需要阅读字里行间的内容来理解整个问题的上下文。每当我看到一个关于结果集的问题时,我问OP的第一件事就是去掉结果集并对数据进行硬编码,而不是进行猜测,从而使OP陷入白费力气。然后我们有更多的信息来解决这个问题。另外,您不应该建议创建一个新的JComboBox。如果使用这种方法,您应该使用
setModel(…)
方法更新现有的组合框。这样,您就不必担心将新创建的组合框添加到框架中并重新验证框架。是的,但默认模型是DefaultComboxModel。请注意,我使用Swing已有一段时间了。您可能会发现更好的方法是声明模型,将行项目添加到模型中,然后在填充模型后创建选择器。@BillHorvath感谢您的回答和信息,我创建了模型,但不起作用,因此如果我理解正确,我应该尝试创建一个DefaultCombobox模型,将项目添加到模型,然后将模型指定给选择器?再次感谢
,但这不是被问到的问题
-是的,但有时你需要阅读字里行间的内容来理解整个问题的上下文。每当我看到一个关于结果集的问题时,我问OP的第一件事就是去掉结果集并对数据进行硬编码,而不是进行猜测,从而使OP陷入白费力气。然后我们有更多的信息来解决这个问题。另外,您不应该建议创建一个新的JComboBox。你应该更新现有的