0
我正在使用NetBeans,它是GUI生成器。 我的問題是,我顯然無法正確使用列表選擇監聽器。爲什麼List Selection Listener會中斷我的方法?
我有兩種方法。第一個應該獲取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」消息。
爲什麼Listener會在我的第二個方法中作出反應? 或者更一般的,我的錯誤是什麼?
非常感謝!