W
What?
Gast
HI,
und zwar hab ich 2 JListen gemacht womit man mit Hilfe der JButtons die Elemente nach links un recht verschieben kann nun hab eine Methode geschrieben wo er mir nachdem ich einen JButton drücke in der Console ausgibt wieviel ich nach recht geschoben hab und wieviele von rechts gelöscht wurden.
So soweit so gut klappt auch super aber das Problem ist das ich es jetzt so hinkriege das der mir nich einfach nur ausgiebt wieviel ich gelöscht oder hinzugefügt hab sondern das er mir die namen der Elemente ausgiebt.
Z.B. anstatt er in der Console ausgibt: Delete 5
Insert 8
soll er nun ausgeben: Delete Quelle1,Quelle2,Quelle3.....
Insert Quelle5,Quelle6,Quelle7,Quelle8......
Hab aber keine ahnung wie ich das hinkriegen soll hoffe ihr habt ne lösung.
Hier meine Methode (mit vielen Kommentaren ^^):
und zwar hab ich 2 JListen gemacht womit man mit Hilfe der JButtons die Elemente nach links un recht verschieben kann nun hab eine Methode geschrieben wo er mir nachdem ich einen JButton drücke in der Console ausgibt wieviel ich nach recht geschoben hab und wieviele von rechts gelöscht wurden.
So soweit so gut klappt auch super aber das Problem ist das ich es jetzt so hinkriege das der mir nich einfach nur ausgiebt wieviel ich gelöscht oder hinzugefügt hab sondern das er mir die namen der Elemente ausgiebt.
Z.B. anstatt er in der Console ausgibt: Delete 5
Insert 8
soll er nun ausgeben: Delete Quelle1,Quelle2,Quelle3.....
Insert Quelle5,Quelle6,Quelle7,Quelle8......
Hab aber keine ahnung wie ich das hinkriegen soll hoffe ihr habt ne lösung.
Hier meine Methode (mit vielen Kommentaren ^^):
Code:
public boolean executeOk() {
Iterator it;
// choosenOld hat noch den alten Stand
choosenInsert = new Vector(); // leer
choosenDelete = new Vector(); // leer
choosenNew = new Vector(); // leer
// Jetzt müssen wir choosenNew mit dem Stand aus der Maske füllen
ListModel lm = target.getModel();
for (int i = 0; i < lm.getSize(); i++) {
Object one = lm.getElementAt(i);
choosenNew.add(one);
}
// jetzt ist choosenNew gefüllt
// Welche Element sind dazu gekommen ? Antwort -> choosenInsert
// Welche Element sind entfernt worden ? Antwort -> choosenDelete
it = choosenOld.iterator();
while (it.hasNext()) {
Object one = it.next();
// prüfen gibt es das Element one in choosenNew ?
if (isElementEnthalten(choosenNew, one) == false) {
choosenDelete.add(one); // Element fehlt, somit soll es wohl
// gelöscht werden
}
}
it = choosenNew.iterator();
while (it.hasNext()) {
Object one = it.next();
// prüfen gibt es das Element one in choosenNew ?
if (isElementEnthalten(choosenOld, one) == false) {
choosenInsert.add(one); // Element ist neu, soll wohl eingefügt
// werden
}
}
if ((choosenInsert.size() + choosenDelete.size()) > 0) {
isDirty = true;
}
return true;
}
public boolean isElementEnthalten(Vector liste, Object one) {
if (liste.indexOf(one) == -1) {
return false;
} else {
return true;
}
}