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.

War es hilfreich?

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 JLists haben, dann auch Sie ihre jeweiligen ListModels 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);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top