2012-09-14 70 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