0

我在使用类的toArray方法时遇到问题ArrayList。我需要将ArrayList, vecPersonnages, 的内容放入JList,listeObjets中,我想用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)*/
4

1 回答 1

3

使用toArray(), toArray(T[] a);的重载方法

Personnage[] array = new Personnage[vecPersonnages.size()]; //Create a new array with the size of the ArrayList
vecPersonnages.toArray(array); // fill the array
listeObjets.setListData(array);
于 2013-04-05T16:42:03.473 回答