2013-06-19 3 views
0

를 사용하여 JList에있는 목록의 모든 값 :표시이 내 코드입니다 애플릿

 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

당신은 그것을 dataQ variable .Try이에 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

차원 표현에 대한 ...

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

체크 아웃 How to use lists 그런

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); } } 

을 할 수? –

1

을 반복하면서 그래서 당신은 그냥 사용할 수, String variable하지 array of String를 사용하는 Jlist#toArray 메서드를 사용하여 목록의 배열 표현을 가져옵니다. 이 시점에서

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

은 물론, 당신은 값을 렌더링하기 위해 ListCelLRenderer를 제공해야합니다.

더 나은 방법은 ListModel을 직접 사용하는 것입니다. 뭔가 같은 ... 그냥 자세한 내용