hallo,
ich hab ein problem mit 2 vectoren. ich hab den vector addedO und den vector vec. diese beinhalten objekte des typs Data und werden dann in einer gui in 2 listen angezeigt, wobei der user ein objekt aus der eine liste auswählen kann und der anderen liste hinzufügen, bzw aus der anderen liste entfernen kann.
ich möchte nun, dass die daten, wenn sie der liste addedO (dazu gehört vector addedO) hinzugefügt wurden, nicht mehr in in der liste avO (hierzu gehört vector avO) angezeigt werden. das wollte ich mit der zweiten if-abfrage bewirken nur leider ist das problem nun folgendes: geht an bsp einfacher zu erklären:
in liste avO sind objekte a b c d
in liste addedO wurden dann objekte b c hinzugefügt
mit meinem code (unten) wird dann in der liste avO der gui a b b c d d angezeigt. und es sollte ja nur a d sein...
(wenn ich nur ein objekt aus der liste avO der addedO-liste hinzufüge, dann kommt das richtige raus, z. B.
aus avO wird b der addedO-liste hinzugefügt
ergebnis: in avO: a c d und in addedO: b)
hoffe, das war so halbwegs verständlich. kann mir da jemand helfen?
ich hab ein problem mit 2 vectoren. ich hab den vector addedO und den vector vec. diese beinhalten objekte des typs Data und werden dann in einer gui in 2 listen angezeigt, wobei der user ein objekt aus der eine liste auswählen kann und der anderen liste hinzufügen, bzw aus der anderen liste entfernen kann.
ich möchte nun, dass die daten, wenn sie der liste addedO (dazu gehört vector addedO) hinzugefügt wurden, nicht mehr in in der liste avO (hierzu gehört vector avO) angezeigt werden. das wollte ich mit der zweiten if-abfrage bewirken nur leider ist das problem nun folgendes: geht an bsp einfacher zu erklären:
in liste avO sind objekte a b c d
in liste addedO wurden dann objekte b c hinzugefügt
mit meinem code (unten) wird dann in der liste avO der gui a b b c d d angezeigt. und es sollte ja nur a d sein...
(wenn ich nur ein objekt aus der liste avO der addedO-liste hinzufüge, dann kommt das richtige raus, z. B.
aus avO wird b der addedO-liste hinzugefügt
ergebnis: in avO: a c d und in addedO: b)
hoffe, das war so halbwegs verständlich. kann mir da jemand helfen?
Code:
public void fillList(Vector vec){
DefaultComboBoxModel model = ((DefaultComboBoxModel)listL.getModel());
model.removeAllElements();
for(int i=0;i<vec.size();i++) {
Data avO = ((Data)vec.get(i));
Vector addedO = controller.getData();
if(addedO.size() > 0 ) {
for (int j=0; j<addedO.size(); j++){
Data addO = (Data)addedO.get(j);
if(!((addO.toString()).equals(avO.toString()))){
model.addElement(avO);
}
}
} else model.addElement(avO);
}
}