Как перенести элементы из одного JList в другой JList в Java?

StackOverflow https://stackoverflow.com/questions/2118149

Вопрос

У меня есть два JList в графическом интерфейсе swing.Теперь я хочу, чтобы, когда пользователь нажимал на кнопку (скажем, TransferButton), выбранные элементы из одного JList добавлялись из первого JList во второй JList и удаляли эти выбранные элементы из первого JList.

Это было полезно?

Решение

Модель не знает о выборе.

JList предоставляет несколько методов для получения выбранного элемента или выбранного индекса.Используйте эти методы, чтобы получить элементы и добавить их в модель другого списка.

Другие советы

У тебя есть два JLists, тогда у вас также есть их соответствующие ListModels.В зависимости от того, как вы их реализовали, вы можете просто удалить элементы из одной модели и добавить их в другую.Обратите, однако, внимание, что 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);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top