Come trasferire i dati da un JList ad altri JList in Java?
-
22-09-2019 - |
Domanda
ho due JList su una GUI swing. Ora voglio che quando un utente fa clic su un pulsante (diciamo TransferButton) gli elementi selezionati da una JList viene aggiunto dal primo JList alla seconda JList e rimuovere gli elementi selezionati dal primo JList.
Soluzione
Il modello non sa di selezione.
Il JList fornisce diversi metodi per ottenere l'elemento selezionato o indice selezionato. Utilizzare questi metodi per ottenere gli oggetti e aggiungerli al modello dell'altro lista.
Altri suggerimenti
Hai due JList
s, allora si hanno anche i loro rispettivi ListModel
s. A seconda di come li implementato si può semplicemente rimuovere gli elementi da un modello e aggiungerli all'altra. Si noti, però, che l'interfaccia ListModel
non si cura per più di accesso elemento per impostazione predefinita, quindi probabilmente è necessario implementare add
e remove
metodi lì da soli.
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);
Immaginiamo di avere due componenti JList come descritto nel codice di cui sopra (sinistra e destra). È necessario scrivere codice riportato di seguito per trasferire i valori selezionati dalla sinistra alla destra JList.
for(Object selectedValue:leftList.getSelectedValuesList()){
rightModel.addElement(selectedValue);
leftModel.removeElement(selectedValue);
}