Редактирование или обновление JList - PullRequest
1 голос
/ 23 октября 2011

У меня есть простая программа слайдов, и слева от моего приложения есть JList, который показывает слайды в текущем приложении.Я могу сохранить и загрузить слайды.Проблема в том, что когда я пытаюсь загрузить слайды из файла XML, я не могу удалить все элементы в JList и добавить их.Потому что, когда я удаляю элементы с помощью model.removeAllElements();, а затем пытаюсь добавить элементы с помощью;

    for(int i=0; i<mL.size(); i++){
        model.add(i, "Slide No: " + i);
        slideCounter++;
    }

Затем будет вызвана функция valueChanged, и поскольку я получаю элементы из arrayList в этой функции, она дает ArrayIndexOutOfBoundsException

Поэтому в моем методе загрузкисоздайте новый пустой список (dMode), затем я инициализирую список с количеством слайдов:

    list = new JList(dMode);
    jScrollPane1 = new JScrollPane(list);

, но не могу назначить новый список текущему списку.совет, как мне решить эту проблему?

Спасибо.

1 Ответ

1 голос
/ 24 октября 2011

Я бы либо реализовал свой собственный ListModel , либо привязал бы данные к списку, используя JGoodies Binding . При использовании JGoodies ваша модель представления может выдавать PropertyChangeEvent всякий раз, когда изменяется содержимое массива, и ваше представление будет автоматически обновляться. Э.Г.

Bindings.bind(myJList, new SelectionInList<String>
    (beanAdapter.getValueModel("listContents"),
     beanAdapter.getValueModel("listSelection")));

с классом модели представления, у которого есть свойство для содержимого списка и одно для текущего выбора.

...