2013-04-05 71 views
0

我在使用ArrayList类的toArray方法时遇到问题。我需要将ArrayList,vecPersonnages的内容放入JList,listeObjets,并且我想用ArrayList#toArray方法来完成。我设法通过将我的列表的值放入一个选项卡然后将此选项卡放在JList中来使其工作。使用ArrayList将ArrayList放入JList#toArray方法

我确实在Google上寻求帮助,但是我发现的所有内容都不起作用。在我的课程中,我确实有一个toString方法,但是,在我使用我的JList的课程中,我没有toString方法。

这是我声明我的课:

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)*/ 

回答

2

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

Personnage[] array = new Personnage(vecPersonnages.size()); 
vecPersonnages.toArray(array); // fill the array 
listeObjets.setListData(array); 
+0

非常感谢!它像一个魅力工作! – user2249860 2013-04-05 16:45:21

+0

@ user2249860不客气。如果这回答你的问题,检查正确的标记,使这个答案是正确的。 – 2013-04-05 16:46:33