problem with JList (remove element from list)
I have a Vector in static class.
It keeps values.
I have a JList. It represents vector values:
I load vector to JList this way:
publicvoid loadjListHistoryModel(){
DefaultListModel dlm =new DefaultListModel();
for(int i=0;i<LoadDriver.gethistoryChangesVector().size();i++){
dlm.addElement(LoadDriver.gethistoryChangesVector().get(i));
}
jListHistory.setModel(dlm);
this.pack();
}
The problem is:
User chooses value from JList and deletes it.
It user does this operation the first time, Everything is O.K.
If he does it the second time, I get
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
at java.awt.Container.remove(Container.java:1132)
I delete element this way:
privatevoid jButton1ActionPerformed(java.awt.event.ActionEvent evt){
int selIndex = jListHistory.getSelectedIndex();//J List selected index
LoadDriver.deleteElementFromhistoryChangesVector(selIndex);//deletes selected value from vector
System.out.println(" got element " + jListHistory.getModel().getElementAt(selIndex) );//try to get element to delete - OK. I get no error, I get my element
jListHistory.remove(selIndex);//ERROR
loadjListHistoryModel();//reload JList model (Vector has been changed)
}
The first time, it works. Element could be deleted without any problem.
The second time I get error in marked code line.
What does it mean?
Why I can get element, which I want to delete, but I can't delete it....
I can't understand - where is mistake!>

