无法从java中的数据库填充Jcombobox
我试图从数据库中获取信息来填充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
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。你应该更新现有的