Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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 从数据库获取Id和数据并添加到JCombobox_Java_Swing_Jdbc_Jcombobox_Comboboxmodel - Fatal编程技术网

Java 从数据库获取Id和数据并添加到JCombobox

Java 从数据库获取Id和数据并添加到JCombobox,java,swing,jdbc,jcombobox,comboboxmodel,Java,Swing,Jdbc,Jcombobox,Comboboxmodel,我想从数据库中获取名称和id,并将其添加到JCombobox。为此我用了 public void add_Category(JComboBox cmb) { try { String query = "SELECT * FROM categories"; ResultSet rs = stmt.executeQuery(query); while (rs.next()) {

我想从数据库中获取名称和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),还有一件事需要澄清然后它就可以正常工作了


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

谢谢大家。实际上,我使用的是Item comboItem[];在while和Item组合项之前=新项(idCmb、TXTMB);里面一会儿。当我删除项目comboItem[]时;线和清洁和建设我的项目再次然后开始工作。再次感谢您的关注。

它只会添加的唯一原因是因为只有一个项目来自数据库…或者在处理第二个项目时发生了一些错误,但是,由于忽略了异常,您不知道如何打印
idCmb
TXTMB
,并查看您在resultset.model中得到的结果。JComboBox的模型应基于项(不完整),必须告诉ListCellRenderer显示描述(此处缺失),然后从JComboBox中选择返回ID,为了获得最好的解释代码,通过@camickr(由JComboBox标记)在帖子中搜索,那么可以在JComboBox中显示两个相同的项目,并且选择返回正确的坐标d表单模型,否则(DeafultComboxModel中的错误)不可能,选择返回最后一个或接近索引