当前位置: 首页 > 面试题库 >

如何在JComboBox中填充数据?

卜凯旋
2023-03-14
问题内容

我创建了一个GUI,并在外部获取了一个数据库。我正在NetBeans中使用GUI构建器来执行此操作。有谁知道用来自数据库的值填充jComboBox的简单方法吗?当我运行项目时,没有错误,但组合框保持为空。

这是设置带有折扣名称的组合框的代码:

public void setDiscountNames(String type, JComboBox cbox) {        
    cbox.removeAllItems();     
    ArrayList<Discount> names = new ArrayList<Discount>();
    try {        
        Connection con = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;            
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/abpp034?user=abpp034&password=120001772");
        stmt = con.prepareStatement("SELECT Name FROM Discount WHERE Type = \"" + type + "\"");
        rs = stmt.executeQuery();

     while(rs.next()){                     
         cbox.addItem(rs.getString("Name")); 
        }
    } catch (SQLException ex) {
        Logger.getLogger(Model.class.getName()).log(Level.SEVERE, null, ex);
    } 
}

它位于与jComboBox对象不同的类中。此类称为模型。

这是我以称为DiscountGUIView的形式调用setDiscountNames方法的地方:

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt){                                           
     model.setDiscountNames("Fixed", jComboBox1);
}

好的(更新)查询确实会打印结果:

run:

旅行标准固定标准建造成功(总时间:1秒)


问题答案:

编辑:这是您的基本错误..您正在ActionPerformed中调用该方法!

classConstructor(){
setDiscountNames("Fixed", jComboBox1); // call this method here.. This will work.

}

如果值打印正确,请尝试此操作。

List<String> strings = new ArrayList<String>();
while(rs.next()){

     strings.add(rs.getString("Name"));  // Confirm if "Name" is valid


    }
cbox.addItem(strings);


 类似资料:
  • 问题内容: 我需要用ArrayList填充JComboBox。有什么办法吗? 问题答案: 使用ArrayList类的方法并将其传递给 有关更多信息,请参见JavaDoc和教程。

  • 问题内容: 我有一个带有表,组合框的框架,我想通过组合框用数据库中的数据填充表,但是如果我与itemlistener一起使用,我不会看到没有itemlistener的表,然后我会看到包含数据的表(combob = combobox) 问题答案: 您有几个问题: 您使用不正确。您的代码可能可以运行(我不确定),但是它没有利用的功能。 从ResultSet读取数据的代码没有意义,因为您甚至根本没有从R

  • 我有一个带有table的框架,combobox,我想通过combobox用来自数据库的数据填充表,但是如果我使用itemlistener我看不到表,没有itemlistener和,我就看到了带有数据的表(combob=combobox)

  • 问题内容: 是否可以用int []填充JComboBox?我正在编写一个代码,该代码将使用填充了年份(整数)的JComboBox。 我写的代码是这样的: 我希望将它们转换为ComboBox中的整数,以便可以从中减去。我是否必须用字符串填充ComboBox,然后在输入它们之后使它们成为整数?还是有一种方法可以用int []实际填充ComboBox? 问题答案: 是泛型的,但是Java泛型不支持原始类

  • 问题内容: 如何从文本文件填充? 问题答案: 非常模糊的问题。您是说要每行输入一个吗?如果是这样,则要使用BufferedReader之类的东西,请读取所有行,并将它们保存为String数组。创建一个新的JComboBox传入该String构造函数。

  • 问题内容: 我知道该怎么做,但是我发誓您可以像[[0] = {0,0,0,0};那样填写;你是怎么做到的?我确实尝试过Google,但没有任何帮助。 问题答案: 您也可以将其作为声明的一部分: