0

Я использую NetBeans и это GUI Builder. Моя проблема в том, что я, по-видимому, не могу правильно использовать List List Listener.Почему List List List List прерывает мой метод?

У меня есть два метода. Первый должен получить индекс выбранного элемента JList и использовать его для извлечения данных из ArrayList, чтобы поместить это в различные поля. (Индекс INT объявлена ​​глобально)

private void mitarbeiterAnzeigeValueChanged(javax.swing.event.ListSelectionEvent evt) {             
    if(evt.getValueIsAdjusting()) {  //I didn't put the "!" here because then this method would do nothing. 
     JList jl = (JList) evt.getSource(); 
     index = jl.getSelectedIndex(); 
     nameTextField2.setText(Arbeitsplan.mitarbeiterListe.get(index).gibNamen()); 
     beschäftigungsartBox2.setSelectedItem(Arbeitsplan.mitarbeiterListe.get(index).gibBeschäftigungsart()); 
     wochenstundenTextField2.setValue(Arbeitsplan.mitarbeiterListe.get(index).gibWochenstunden()); 
    } 
}  

Arbeitsplan мой основной класс и mitarbeiterListe ArrayList там.

Во-первых, почему я не должен ставить "!" перед «getValueIsAdjusting()»?

Второй метод должен удалять записи из JList, а также из ArrayList. Кроме того, следует очистить TextFields.

private void mitarbeiterLöschenButtonActionPerformed(java.awt.event.ActionEvent evt) {               
    Arbeitsplan.mitarbeiterListe.remove(index); 
    mitarbeiterListModel.remove(index);   
    mitarbeiterAnzeige.remove(index); 
    mitarbeiterAnzeige.setModel(mitarbeiterListModel); 

    nameTextField2.setText(""); 
    beschäftigungsartBox2.setSelectedIndex(0); 
    wochenstundenTextField2.setValue("");    
}  

После "mitarbeiterAnzeige.remove (index);" поток снова меняется на первый метод, и в конце ничего не работает. Я получаю сообщение «ArrayIndexOutOfBoundsException: -1».

Почему ответчик реагирует в моем втором методе? Или более общие, каковы мои ошибки?

Спасибо в adavance!

ответ

0

Добавление «if (index> = 0)», прежде чем что-то в модели списка (а не в самом списке) изменилось!