Pisze niewielka aplikacje bazodanowa i korzystam z JTable do prezentacji rekordow. W oknie aplikacji mam zamiar dodawac, edytowac i usuwac rekordy. Dodawanie i edycja to zaden problem, jadnak podczas usuwania rekordow pojawil sie porblem. Usuwanie dziala dopoki elementy w JTable nie sa posortowane. Gdy posortuje elemanty w JTable porzez nacisniecie naglowka kolumy i zamierzam usunac rekord, dane z kontenera w modelu mojego JTable sa usuwane poprawnie, jednak po wywolaniu metory updateUI()
pojawia sie wyjątek AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
Moze macie jakies pomysly jak temu zaradzic?
public void actionPerformed(ActionEvent e) {
int[] activeRows = teamsTable.getSelectedRows();
if(activeRows.length == 0) {
JOptionPane.showMessageDialog(null, "Żadna drużyna nie została wybrana", "Błąd", JOptionPane.ERROR_MESSAGE);
return;
}
List<Team> teamsToDelete = new ArrayList<Team>();
for(int i: activeRows) {
teamsToDelete.add(teamsTableModel.getRow(teamsTable.convertRowIndexToModel(i)));
}
String teamsToDeleteMessage = "";
for(Team t: teamsToDelete) {
teamsToDeleteMessage += t.getName() + "\n";
}
int confirmationResult = JOptionPane.showConfirmDialog(null, "Chcesz usunąć drużyny:\n" + teamsToDeleteMessage + "Czy na pewno chcesz to zrobić?", "Zapytanie", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if(confirmationResult == 0) {
for(int i: activeRows) {
teamsTableModel.removeRow(teamsTable.convertRowIndexToModel(i));
}
teamsTable.updateUI();
}
}