Hallo...
ich hab grad ne Methode geschrieben, und ich kuck sie mir an und denke "oh mein gott :roll:"
Leider stell ich mich beim Arbeiten mit arrays usw immer sehr doof an, vllt geh ich auch das komplett
falsch an.
Hab ne JList, mit einem String[] model. Da man bei einem ListModel weder ein "add" noch "remove" hat, muss
ich mir das komplette Model immer neu machen, wenn ich etwas lösche oder adde.
Im Anhang meine grandiose Methode, die Elemente aus der Liste löscht. Wäre nett, wenn ihr mir da
ne bessere Version vorschlagt, ich stell mich bei sowas wie gesagt immer recht doof an, ich machs immer
unglaublich kompliziert, aber mir fehtl die Übung mit sowas. Bitteschön:
Danke :toll:
ich hab grad ne Methode geschrieben, und ich kuck sie mir an und denke "oh mein gott :roll:"
Leider stell ich mich beim Arbeiten mit arrays usw immer sehr doof an, vllt geh ich auch das komplett
falsch an.
Hab ne JList, mit einem String[] model. Da man bei einem ListModel weder ein "add" noch "remove" hat, muss
ich mir das komplette Model immer neu machen, wenn ich etwas lösche oder adde.
Im Anhang meine grandiose Methode, die Elemente aus der Liste löscht. Wäre nett, wenn ihr mir da
ne bessere Version vorschlagt, ich stell mich bei sowas wie gesagt immer recht doof an, ich machs immer
unglaublich kompliziert, aber mir fehtl die Übung mit sowas. Bitteschön:
Code:
/* Neue Liste = alte Liste - selektierte Einträge */
int[] selectedIndices = list.getSelectedIndices();
int oldSize = list.getModel().getSize();
int newSize = oldSize - selectedIndices.length;
String[] newListModel = new String[newSize];
int newIndex = 0;
/* Liste kopieren bis auf selektierte Einträge */
for (int i = 0; i < oldSize; i++) {
/* Soll dieser Eintrag kopiert werden ? */
boolean toCopy = true;
for (int j : selectedIndices) {
if (i == j) {
// nicht kopieren, Element überspringen
toCopy = false;
break;
}
}
if (toCopy) {
// kopieren, es ist keines der selektierten Elemente:
newListModel[newIndex] = (String) list.getModel()
.getElementAt(i);
newIndex++;
}
}
/* Liste durch neue ersetzen und wieder an das ScrollPane hängen */
list = new JList(newListModel);
listPane.setViewportView(list);
Danke :toll: