使用ArrayList#toArray方法将ArrayList放入JList

时间:2013-04-05 16:36:42

标签: java swing list arraylist jlist

我在使用toArray类的ArrayList方法时遇到问题。我需要将ArrayListvecPersonnages的内容放入JListlisteObjets,我想使用ArrayList#toArray方法进行操作。我设法通过将列表的值放在选项卡中然后将此选项卡放在JList中来使其工作。

我确实在谷歌上查了一下帮助,但我找到的所有内容都没有起作用。我的课程中有一个toString方法,但是,我在使用toString的课程中没有JList方法。

这是我宣布我的课程的方式:

private JList<Personnage> listeObjets = null;
private ArrayList<Personnage> vecPersonnages = null;

以下是我尝试将ArrayList的内容添加到JList以及我尝试的一些内容的代码,在评论中注明:

Personnage[] tabPerso = new Personnage[vecPersonnages.size()];
for (int i = 0; i < vecPersonnages.size(); i++) {
    tabPerso[i] = vecPersonnages.get(i);
}
listeObjets.setListData(tabPerso);
//listeObjets.setListData(vecPersonnages.toArray());
//listeObjets.setListData((Personnage[]) vecPersonnages.toArray());
/*the last line gives me a ClassCastException (java.lang.Object 
  cannot be cast to personnage.Personnage)*/

1 个答案:

答案 0 :(得分:2)

使用toArray()toArray(T[] a);

的重载方法
Personnage[] array = new Personnage(vecPersonnages.size());
vecPersonnages.toArray(array); // fill the array
listeObjets.setListData(array);