![](/img/trans.png)
[英]ArrayList, JList, DefaultListModel, adding elements, displaying them etc
[英]Adding items to a JList from ArrayList using DefaultListModel
我正在嘗試將ArrayList
中的項添加到JList
,當我使用以下代碼時它正在工作:
private void UpdateJList(){
DefaultListModel<String> model = new DefaultListModel<String>();
for(Person p : personList){
model.addElement(p.ToString());
}
clientJList.setModel(model);
clientJList.setSelectedIndex(0);
}
但是,如果我在方法之外聲明DefaultListModel
,則添加每個項目的增量,IE而不是添加每個項目中的一個,它會添加多個項目。 我只是想知道為什么會這樣?
如果在更新方法之外定義DefaultListModel
則它將變為Instance變量,因此它將為一個實例具有相同的值。 因此,如果您從同一個實例中反復調用此方法,則只需向現有列表添加更多值。 因此它顯示了多個項目。
注意 :在函數外聲明DefaultListModel
不會導致任何問題,使其對象外部函數是問題。 您可以毫無問題地執行以下操作:
DefaultListModel<String> model;
private void UpdateJList(){
model = new DefaultListModel<String>();
for(Person p : personList){
model.addElement(p.ToString());
}
clientJList.setModel(model);
clientJList.setSelectedIndex(0);
}
或者您可以嘗試從模型中清除先前的值,然后添加新值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.