Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用小程序显示JList中列表的所有值_Java_Swing_Applet_Jlist_Defaultlistmodel - Fatal编程技术网

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