Wie die Elemente von einem JList zu anderem JList in Java übertragen?
-
22-09-2019 - |
Frage
Ich habe zwei JList auf einer Schaukel GUI. Jetzt möchte ich, dass, wenn ein Benutzer klickt auf eine Schaltfläche (sagen TransferButton) die ausgewählten Elemente aus einem JList vom ersten JList zum zweiten JList hinzugefügt wird und diese ausgewählten Elemente aus dem ersten JList entfernen.
Lösung
Das Modell nicht weiß, über die Auswahl.
Der JList bietet mehrere Methoden, um das ausgewählte Element oder ausgewählten Index zu erhalten. Verwenden Sie diese Methoden, um die Einzelteile zu erhalten und fügen Sie sie in die andere Liste des Modells.
Andere Tipps
Sie zwei JList
s haben, dann auch Sie ihre jeweiligen ListModel
s haben. Je nachdem, wie sie umgesetzt Sie können nur die Elemente von einem Modell entfernen und fügen Sie sie auf der anderen Seite. Beachten Sie jedoch, dass die ListModel
Schnittstelle standardmäßig nicht mehr als Element Zugriff schert, so dass Sie wahrscheinlich add
und remove
Methoden dort selbst zu implementieren.
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);
Lassen Sie uns vorstellen, dass Sie zwei JList Komponenten wie oben im Code beschrieben (links und rechts). Sie müssen folgenden Code schreiben, um ausgewählte Werte von links nach rechts JList zu übertragen.
for(Object selectedValue:leftList.getSelectedValuesList()){
rightModel.addElement(selectedValue);
leftModel.removeElement(selectedValue);
}