Как перенести элементы из одного JList в другой JList в Java?
-
22-09-2019 - |
Вопрос
У меня есть два JList в графическом интерфейсе swing.Теперь я хочу, чтобы, когда пользователь нажимал на кнопку (скажем, TransferButton), выбранные элементы из одного JList добавлялись из первого JList во второй JList и удаляли эти выбранные элементы из первого JList.
Решение
Модель не знает о выборе.
JList предоставляет несколько методов для получения выбранного элемента или выбранного индекса.Используйте эти методы, чтобы получить элементы и добавить их в модель другого списка.
Другие советы
У тебя есть два JList
s, тогда у вас также есть их соответствующие ListModel
s.В зависимости от того, как вы их реализовали, вы можете просто удалить элементы из одной модели и добавить их в другую.Обратите, однако, внимание, что ListModel
интерфейс не заботится о большем, чем доступ к элементам по умолчанию, поэтому вам, вероятно, придется реализовать add
и remove
методы найди сам.
DefaultListModel leftModel = new DefaultListModel();
leftModel.addElement("Element 1");
leftModel.addElement("Element 2");
leftModel.addElement("Element 3");
leftModel.addElement("Element 5");
leftModel.addElement("Element 6");
leftModel.addElement("Element 7");
JList leftList = new JList(leftModel);
DefaultListModel rightModel = new DefaultListModel();
JList rightList = new JList(rightModel);
Давайте представим, что у вас есть два компонента JList, как описано в приведенном выше коде (левый и правый).Вы должны написать следующий код для переноса выбранных значений из левого JList в правый.
for(Object selectedValue:leftList.getSelectedValuesList()){
rightModel.addElement(selectedValue);
leftModel.removeElement(selectedValue);
}