Hallo Leute, ich habe oben genanntes Problem mit folgendem ListSelectionListener:
Ich habe schon versucht, das Ganze zu debuggen, allerdings habe ich keine Ahnung, warum der Aufruf des Schreibbefehls erstens 3 mal erfolgt und zweitens beim letzten mal plötzlich 0 ergibt. Warum ändert sich die Größe meines ListModels plötzlich? Dadurch, dass schon im if() eine NullPointerException erzeugt wird, wird der remove() Befehl ja gar nicht ausgeführt, weshalb sich die Größe nicht ändern dürfte. Ich greife auch nicht anderweitig auf das ListModel zu, deshalb verstehe ich das Ganze nicht.
Informationen:
list = new JList<String>();
lstmod = new DefaultListModel<String>();
list.setModel(lstmod);
Java:
list.addListSelectionListener(new ListSelectionListener(){
@Override
public void valueChanged(ListSelectionEvent arg0) {
System.out.println(lstmod.size()); // Wird scheinbar 3 mal aufgerufen, mit den Werten 1; 1; 0
if(!arg0.getValueIsAdjusting() && list.getSelectedValue().equals("Neue Kategorie...")){
lstmod.remove(lstmod.size() - 1);
String temp = JOptionPane.showInputDialog("Neue Kategorie hinzufügen: ");
if(!temp.isEmpty()){
lstmod.addElement(temp);
}else{
JOptionPane.showMessageDialog(null, "Kein Name für neue Kategorie angegeben!", "Fehlermeldung", JOptionPane.INFORMATION_MESSAGE);
}
lstmod.addElement("Neue Kategorie...");
list.clearSelection();
}
}
});
Ich habe schon versucht, das Ganze zu debuggen, allerdings habe ich keine Ahnung, warum der Aufruf des Schreibbefehls erstens 3 mal erfolgt und zweitens beim letzten mal plötzlich 0 ergibt. Warum ändert sich die Größe meines ListModels plötzlich? Dadurch, dass schon im if() eine NullPointerException erzeugt wird, wird der remove() Befehl ja gar nicht ausgeführt, weshalb sich die Größe nicht ändern dürfte. Ich greife auch nicht anderweitig auf das ListModel zu, deshalb verstehe ich das Ganze nicht.
Informationen:
list = new JList<String>();
lstmod = new DefaultListModel<String>();
list.setModel(lstmod);