2012-09-14 39 views
1

我正在创建一个简单的项目使用休眠。我知道如何显示JTable以及JList上的记录,但我不知道如何显示JComboBox中的记录。无论如何,这里是我的代码,并指导我显示数据库记录到JComboBox休眠显示记录从JComboBox

我没有任何错误或任何东西,但它只显示一条记录,这是我知道它是在循环中的最后一条记录,但仍不知道如何显示所有记录。所以这里是我的代码。

变量:

private Object[] loadName; 

上加载方法和检索数据:

public Object[] LoadSupplier(){ 
    b = a.openSession(); 
    b.beginTransaction(); 
    Query query = b.createQuery("FROM Supplier"); 
    @SuppressWarnings("unchecked") 
    ArrayList<Supplier> load = (ArrayList<Supplier>) query.list(); 
    b.getTransaction().commit(); 
    b.close(); 
    for(Supplier supply : load){ 
     loadName = new Object[]{supply.getSupplierName()}; 
    } 
    return loadName; 
} 

并为它流露出来的数据库:

comboCategory = new JComboBox(LoadSupplier()); 

我所做的就是我所说的方法直接把它作为JComboBox值:) 告诉我,如果我'米做对了。什么是达到理想输出的最佳方式?

回答

3

重新分配每次for循环迭代,所以你不应该感到惊讶,没有对以前的数据被保存在loadName变量。为什么不在之前创建一个DefaultComboBoxModel<E>对象for循环,然后将每个迭代添加到循环内部的模型中?

+0

是的你的权利,这就是为什么只有最后一个记录显示我从来没有想到这一点。 :D有没有使用模型的任何解决方案,就像一个简单的存储到数组列表,是一个更好的解决方案或不是? – Zyrax

+0

@Jerome:'Vector '也可以,但为什么不使用'DefaultComboBoxModel '对象? –

+0

矢量也很好,但也许你有权获得所需的输出,我应该使用DefaultComboBoxModel。 :D – Zyrax