I'm having trouble using the toArray method of the ArrayList class. I need to put the content of an ArrayList, vecPersonnages, into a JList, listeObjets, and I'd like to do it using ArrayList#toArray method. I managed to make it work by putting the values of my list in a tab and then putting this tab in the JList.
I did check on Google for help but everything that i found turned out not to work. I do have a toString method in my classes, however, i do not have a toString method in the class in which I utilize my JList.
This is how i declared my classes:
private JList<Personnage> listeObjets = null;
private ArrayList<Personnage> vecPersonnages = null;
Below is the code where I try to add the content of my ArrayList to the JList along with some things I tried, noted in comments:
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)*/