2012-05-08 39 views
1

JComboBox從數據庫中檢索信息。數據添加後,列表應該立即更新。AbstractListModel中的方法來刷新JComboBox?

我知道我需要fireContentsChanged來更新值。我不知道我應該在方法中做什麼。任何指導將不勝感激!

class ComboModel extends AbstractListModel implements ComboBoxModel 
{ 
    ArrayList list = new ArrayList(); 

    @Override 
    public Object getElementAt(int arg0) { 

     return null; 
    } 

    @Override 
    public int getSize() { 
     return list.size();  
    } 

    @Override 
    public Object getSelectedItem() { 


    } 

    @Override 
    public void setSelectedItem(Object arg0) { 


    }   
} 


stockListComboBox = new JComboBox(); 
ComboModel model = new ComboModel(); 
stockListComboBox.setModel(model);   

try 
{ 
    // Database stuffs 
} 

catch(Exception e) 
{ 
    e.printStackTrace(); 
} 

回答

2

您需要提供一些集合作爲模型的核心,比如ArrayList或其他類型的有序列表。做到這一點,方法將開始有意義。

+0

氣墊船Full Of Eels,謝謝解釋。我需要使用所有的方法嗎?我一直在看幾個我仍然迷失的例子。我不知道我應該在方法中添加什麼。 –

+0

您需要重寫抽象方法,即所需的方法。試一試,你可能會想出來,或者至少靠近。 –

0

如前所述,您需要提供數據。組合框最簡單的方法是使用DefaultComboBoxModel,它可以在構造函數中使用Object []。一般來說,上面的兩個方法是爲了1)獲取列表中的元素,2)返回列表的大小。

接下來的兩個是用於跟蹤列表中的哪個項目被選中。我建議看看javadoc。另外,如果你使用eclipse,netbeans或intellij,你應該能夠很容易地查看DefaultComboBoxModel的源代碼,並且它應該顯而易見地表明這些方法正在做什麼。

+0

馬特,感謝您的解釋。我需要使用所有的方法嗎?我只需要從我的數據庫中檢索數據。 –