Как перевести одну ListModel в другую в Java

У меня есть две ListModels: listModelRight и listModelLeft. Я просто хочу, чтобы listModelRight = ListModelLeft, но даже это не работает. Как мне это сделать?

Пример кода:

listModelFilterleft = listModelFilterright;
jList10.setModel(listModelFilterleft);
listModelFilterright.clear();
jList11.setModel(listModelFilterright);

Для получения дополнительной информации, почему: я пытаюсь сделать фильтр, состоящий из двух JLists и 5 кнопок. Кнопки должны поместить переменные фильтра слева направо или обратно. 5 кнопок означают:

> from left to right
>> all from left to right
<> change left and right
<< all from right to left
< from right to left

Если вы нажмете >> или << все элементы должны перейти из списка в другой список. Из-за этого я буду использовать оригинальные Inputitems (в правильном порядке), которые я использовал, чтобы заполнить список элементами...

2 ответа

Решение
listModelFilterleft = listModelFilterright;

Итак, теперь эти две переменные ссылаются на один и тот же, уникальный объект.

List10.setModel(listModelFilterleft);

Первый список использует этот уникальный объект в качестве модели

listModelFilterright.clear();

И теперь в этой модели больше ничего нет

jList11.setModel(listModelFilterright);

И теперь второй список использует тот же, уникальный, пустой объект в качестве своей модели.

Вам нужны две модели диска. Вы хотите удалить все элементы из первого и добавить их ко второму.

Вот мое решение: оно работает, если вы хотите иметь: ListModel2 = ListModel1;Просто пиши: ListModel2 = setListModel1ToListModel2ByOverrideListModel2 (listModel1, listModel2);

public DefaultListModel setListModel1ToListModel2ByOverrideListModel2 (DefaultListModel listModel1, DefaultListModel listModel2){
     listModel2.clear();
     for (int i = 0; i < listModel1.getSize(); i++){
         listModel2.addElement(listModel1.getElementAt(i));
     }
 return listModel2;

}

Другие вопросы по тегам