Java 使用小程序显示JList中列表的所有值
这是我的代码:Java 使用小程序显示JList中列表的所有值,java,swing,applet,jlist,defaultlistmodel,Java,Swing,Applet,Jlist,Defaultlistmodel,这是我的代码: 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; publ
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);
private static final long serialVersionUID=1L;
/*将数据作为人员列表显示。
*/
private static List personData=new ArrayList();
公共静态列表;
公共void init(){
//添加一些示例数据
添加(新的PersonModel(“Hans”、“Muster”);
添加(新的PersonModel(“Ruth”、“Mueller”);
添加(新的PersonModel(“Heinz”、“Kurz”);
添加(新的PersonModel(“Cornelia”、“Meier”);
添加(新的PersonModel(“Werner”、“Meyer”);
添加(新的PersonModel(“Lydia”、“Kunz”);
添加(新的PersonModel(“安娜”,“最佳”));
添加(新的PersonModel(“Stefan”、“Meier”);
添加(新的PersonModel(“Martin”、“Mueller”);
字符串dataQ=“”;
对于(int i=0;i
但它只显示最后一条记录。如何显示所有记录/值?有什么想法吗?谢谢。String[]arr=new String[];
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);
对于(int i=0;i
试试这个你使用的是
字符串变量
而不是字符串数组
,所以在循环中迭代时,它将数组列表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();
}
int size=personData.size();//获取personData的大小
字符串dataQ[]=新字符串[size];//将字符串dataQ更改为dataQ[];
对于(int i=0;i
您可以使用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));