2013-06-12 4 views
0

Есть ли быстрый способ перетасовать пункты DefaultListModel кроме копирования всех элементов в отдельном arraylist, я использую этот код, но он дает мне java.lang.ClassCastException:Перемешать DefaultListModel

.... 
private DefaultListModel<String> listModel = new DefaultListModel<String>(); 
... 
Collections.shuffle((List<?>) listModel, new java.util.Random(seed)); 
... 

Любому предложение

+0

Как у ou получить элементы в 'DefaultListModel' в первую очередь? – MadProgrammer

+0

Функция addElement() – Adil

+0

Предположительно, у вас есть цикл для добавления элементов в модель списка? – MadProgrammer

ответ

0

Не совсем уверен, индексов, но что-то вроде этого:

private DefaultListModel<String> listModel = new DefaultListModel<String>(); 
... 
static void shuffle(DefaultListModel<String> mdl){ 
    for(int i=0;i<mdl.size();i++){ 
     int swapWith = (int)(Math.random()*(mdl.size()-i))+i; 
     if(swapWith==i) continue; 
     mdl.add(i, mdl.remove(swapWith)); 
     mdl.add(swapWith, mdl.remove(i+1)); 
    } 
} 
Смежные вопросы