JList Element entfernen

latogt

Grünschnabel
Hallo,

ich bekomme bei mir immer eine ArrayIndexOutOfBoundsException Fehlermeldung beim Löschen eines Elements aus meiner JList. Vielleicht kann mir von euch jemand sagen, warum das so ist. Hier mal ein paar Zeilen:

Code:
public void actionPerformed(ActionEvent e) {
                    
        if(e.getActionCommand().equals("up"))
        {
            if(_layerBox.getSelectedIndex() != 0 && _layerBox.getSelectedValue() != null)
            {
                int iItem = _layerBox.getSelectedIndex();
                Geometry oItem = (Geometry)_layerBox.getSelectedValue();
                
                _layerBox.remove(iItem);
                _layerBox.add(this, oItem, iItem);

                _layerBox.setSelectedValue(oItem, true);
            }
        }
}

Der Code wird durch einen Button ausgelöst. Ich möchte nämlich das Element nach oben verschieben. Die JList trägt den Namen _layerBox und wurde wie folgt initialisiert:

Code:
_layerBox = new JList();

Ich habe die Elemente meiner JList schon überprüft und habe über getModel().getSize() mir die Anzahl ausgeben lassen. Habe ich das zweite Element selektiert, wird im obigen Code auch iItem=1 herauskommen (ich habe nach dieser Zeile mir eine Ausgabe testhalber gemacht). Demnach habe ich also ein Element, dass auch gelöscht werden kann und trotzdem bekomme ich an der Stelle, wo das remove(index) auftaucht, die Fehlermeldung.

Kann mir jemand weiterhelfen?
 
Hi,

kann sein, dass du das remove() auf das Model anwenden musst.
Probier mal sowas:

Java:
DefaultListModel model = new DefaultListModel();
JList list = new JList(model);
.
.
.

model.remove(index);

Bin mir aber nicht sicher.

Gruß
joschi
 
Zurück