Как перенести элементы из одного JList в другой JList в Java? - PullRequest
0 голосов
/ 22 января 2010

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

Ответы [ 3 ]

3 голосов
/ 22 января 2010

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

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

2 голосов
/ 22 января 2010

У вас есть два JList с, тогда у вас также есть соответствующие ListModel с. В зависимости от того, как вы их реализовали, вы можете просто удалить элементы из одной модели и добавить их в другую. Обратите внимание, что интерфейс ListModel по умолчанию не заботится о чем-то большем, чем доступ к элементам, поэтому вам, вероятно, придется самостоятельно реализовать методы add и remove.

1 голос
/ 17 февраля 2014
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);
}
...