2013-06-19 21 views
0

這是我的代碼列表的所有值:顯示在JList中使用的Applet

 private static final long serialVersionUID = 1L; 
    /* The data as a list of Persons. 
    */ 
    private static List<PersonModel> personData = new ArrayList<PersonModel>(); 

    public static JList<PersonModel> jlist; 


    public void init() { 

     // Add some sample data 
     personData.add(new PersonModel("Hans", "Muster")); 
     personData.add(new PersonModel("Ruth", "Mueller")); 
     personData.add(new PersonModel("Heinz", "Kurz")); 
     personData.add(new PersonModel("Cornelia", "Meier")); 
     personData.add(new PersonModel("Werner", "Meyer")); 
     personData.add(new PersonModel("Lydia", "Kunz")); 
     personData.add(new PersonModel("Anna", "Best")); 
     personData.add(new PersonModel("Stefan", "Meier")); 
     personData.add(new PersonModel("Martin", "Mueller")); 

     String dataQ = " "; 


     for(int i = 0; i < personData.size(); i++){ 
      dataQ = personData.get(i).getLastName() + " " + personData.get(i).getFirstName(); 
     } 
     String[] arr = new String[] { dataQ }; 
     jlist = new JList(arr); 

但只顯示最後一個記錄。我如何顯示所有記錄/值?有任何想法嗎?謝謝。

回答

1

您使用String variable而不是array of String,所以在迭代循環中被存儲dataQ variable。嘗試如此Arraylist personData最後一個值,

int size=personData.size();//get size of personData 
String dataQ[]=new String[size];//change String dataQ to dataQ[]; 

for(int i = 0; i < personData.size(); i++) 
     { 
      dataQ[i] = personData.get(i).getLastName() + " " + personData.get(i).getFirstName(); 
     } 
+0

感謝夥計它的工作!也作解釋。 –

+0

@neknekmouth不客氣:-) – Rohan

0
String[] arr = new String[]; 

for(int i = 0; i < personData.size(); i++){ 
      dataQ = personData.get(i).getLastName() + " " + personData.get(i).getFirstName(); 
arr [i] = dataQ; 
     } 

     jlist = new JList(arr); 

試試這個

+0

尺寸表情? –

1

你可以只使用Jlist#toArray方法來獲取你的列表的數組表示。

jList = new JList(personData.toArray(new PersonModel[personData.size()]); 

在這一點上,當然,你需要提供一個ListCelLRenderer呈現值。

更好的方法是直接使用ListModel。喜歡的東西...

public class PersonListModel extends AbstractListModel<PersonModel>{ 

    private List<PersonModel> people; 

    public PersonListModel(List<PersonModel> people) { 
     this.people = people; 
    } 

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

    @Override 
    public PersonModel getElementAt(int index) { 
     return people.get(index); 
    } 

} 

然後,你可以只是做...

JList jList = new JList(new PersonListModel(personData)); 

退房How to use lists更多細節