这是我的代码:
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);
但它只显示最后一条记录。如何显示所有记录/值?有任何想法吗?感谢。
答案 0 :(得分:1)
您正在使用String variable
而不是array of String
,因此在循环迭代时,它会在Arraylist personData
中存储dataQ variable
的最后一个值。试试这个,
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();
}
答案 1 :(得分: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了解详情
答案 2 :(得分: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);
试试这个