Имам два JList на суинг GUI. Сега искам, когато потребител щракне върху бутон (да речем TransferButton), избраните елементи от един JList да се добавят от първия JList към втория JList и да премахнат тези избрани елементи от първия JList.
Как да прехвърля елементите от един JList в друг JList в Java?
Отговори (3)
Моделът не разбира от селекция.
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);
}