2013-04-05 3 views
0

У меня возникли проблемы с использованием метода toArray класса ArrayList. Мне нужно поставить содержимое ArrayList, vecPersonnages, в JList, listeObjets, и я хотел бы сделать это, используя метод ArrayList#toArray. Мне удалось заставить его работать, поместив значения моего списка на вкладку, а затем поместив эту вкладку в JList.Ввод ArrayList в JList с использованием метода ArrayList # toArray

Я проверял Google на помощь, но все, что я нашел, оказалось неработоспособным. У меня есть метод 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)*/ 

ответ

2

Использовать перегруженный метод toArray(), toArray(T[] a);

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

спасибо! Оно работало завораживающе! – user2249860

+0

@ user2249860 Добро пожаловать. Если это ответит на ваш вопрос, проверьте правильную метку, чтобы этот ответ был правильным. –

Смежные вопросы