Witam wszystkich forumowiczów. Jeśli problem który poniżej opisuję pojawił się już na forum to przepraszam za robienie bałaganu. Mój problem dotyczy czegoś takiego. Mam tablicę utworzoną przez obiekt modelu (klasa dziedzicząca z DefaultTableModel). Posiadam też przyciski do dodania i usunięcia wiersza modelu(a zarazem i tabeli). Poniżej trochę kodu:
// usuwanie zaznaczonego wiersza
public void jButton1_actionPerformed(ActionEvent e) {
int ktory = tabela.getSelectedRow();
if(ktory >= 0)
{
modelDefault.removeRow(ktory); // usunięcie z modelu
}
else
JOptionPane.showMessageDialog(Tables.this,"Nothing to delete","Info",JOptionPane.INFORMATION_MESSAGE);
}
// dodawanie wiersza
public void jButton3_actionPerformed(ActionEvent e) {
Vector v = new Vector();
for(int i = 0; i < modelDefault.getColumnCount(); i++)
{
Integer liczba = new Integer(21);
v.add(liczba);
}
modelDefault.addRow(v);
}
Model utworzyłem tak że zawiera 20 wierszy.
Po uruchomieniu programu i zaznaczeniu jakiegoś wiersza zarówno przy dodawaniu jak i usuwaniu występuje wyjątek.
Przy dodawaniu:
java.lang.ArrayIndexOutOfBoundsException: 20 > 0 (20 to ilość wierszy)
Przy usuwaniu:
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 15
(15 to aktualnie zaznaczony przeze mnie wiersz tabeli). Czy ma ktoś jakiś pomysł jak to rozwiązać. Bo ja nie mogę dojść gdzie popełniam błąd.