簡體   English   中英

使用DefaultListModel從ArrayList向JList添加項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM