从数据库中获取 ID 和数据并添加到 JCombobox

Posted

技术标签:

【中文标题】从数据库中获取 ID 和数据并添加到 JCombobox【英文标题】:Get Id and data from database and add to JCombobox 【发布时间】:2014-09-09 07:01:26 【问题描述】:

我想从数据库中获取名称和 ID 并将其添加到 JCombobox。为此我使用了

       public void add_Category(JComboBox cmb) 

       try 
            String query = "SELECT * FROM categories";
            ResultSet rs = stmt.executeQuery(query);
            while (rs.next()) 

                String Txtcmb = rs.getString(2).trim();
                int idCmb = rs.getInt("id");
                Item comboItem = new Item(idCmb, Txtcmb); 
                cmb.addItem(comboitem);   //This line add only 1 object in combocox but i have 5 in my database
           
        catch(Exception e) 

       
   

Item.java

public class Item 
    private int id;
    private String description;

    public Item(int id, String description) 
        this.id = id;
        this.description = description;
    
    public int getId() 
        return id;
    

    public String toString() 
        return description;
    
 

现在的问题是,当我将对象添加到组合框中时,它只添加一个对象,而我的数据库中有 5 个对象。

它在组合框中只显示一个项目而不是 5 个。如果我只将字符串添加到数据库中,例如 comboItem.addItem(Txtcmb);,我想清除的另一件事是它可以正常工作

任何想法将不胜感激。提前致谢。

【问题讨论】:

它只会添加的唯一原因是因为只有一个项目来自数据库......或者在处理第二个项目时发生了一些错误,但是由于你忽略了你不会的异常不知道 尝试打印idCmbTxtcmb,看看你的结果集中有多少结果。 JComboBox 的模型应该基于项目(不完整),必须告诉 ListCellRenderer 显示描述(缺少那里),然后从 JComboBox 中选择返回 ID,以获得最好的代码并提供很好的搜索解释@camickr 的帖子(由 JComboBox 标记) 除此之外,可以在 JComboBox 中显示两个相同的项目,并且选择返回正确的坐标 d 表单模型,否则(DeafultComboBoxModel 中的错误)是不可能的,选择返回最后一个或接近索引 【参考方案1】:

谢谢大家。实际上我正在使用 Item comboItem[];之前 while and and Item comboItem = new Item(idCmb, Txtcmb);里面一会儿。当我删除 Item comboItem[];再次清理并构建我的项目,然后它开始工作。再次感谢您的关心。

【讨论】:

以上是关于从数据库中获取 ID 和数据并添加到 JCombobox的主要内容,如果未能解决你的问题,请参考以下文章

使用 Flutter 从数据库中构建列表获取

Jmeter-从数据库中获取数据并作为变量使用

从 JSON 数据中获取产品 ID 并通过 AJAX 发布

如何从访问数据库列中获取每个唯一值并添加到组合框项目

从 20 个相关表中获取数据(通过 id),将它们组合到一个 json 文件并为此利用 spring 批处理

Xamarin 表单从另一个视图获取数据