JTable Selektierte Reihe kann nicht gelöscht werden

XSlippy666

Mitglied
Guten Tag liebe Community,
Ich habe folgendes Problem:

In meinem GUI habe ich einige Buttons, eine Tabelle und einige Textfelder etc. programmiert.
Ein Button soll in seiner Action Performed die Markierte Reihe der Programmierten Tabelle löschen.
Der ButtonEvent sieht folgendermaßen aus :
Java:
   if(e.getActionCommand().equals("delete")){
       try{
           
           table4.remove(table4.getSelectedRow());
           
       }
       catch(Exception delete){
           
           JOptionPane.showMessageDialog(null, "Die ausgewählte Reihe konnte nicht gelöscht werden!\n" + delete); 
       }
   }

Leider führt dies immer zum selben Resultat :

Die Exception fäng immer den Fehler ab!!! Wenn ich eine Reihe markiert habe tut sie dies und wenn ich keine Reihe markiert habe... Ich bin ein ziemlicher Java Anfänger und komme daher nicht auf den Fehler... Vieleicht könnt ihr mir helfen...

Die Exception lautet wiefolgt:

java.lang.ArrayIndexOutOfBoundsException: Array index out of range: -1
 
> und wenn ich keine Reihe markiert habe...

eben, wenn du keine markiert hast gibt es auch ein Event, getSelectedRow() liefert -1, und -1 ist kein guter Index,
prüfe ob aktuell eine Selektion vorliegt und führe deine Aktion bei -1 nicht aus
 
Also erstmal, was macht remove(), diese Methode gibts in einem JTable doch gar nicht.
2. wenn laut deiner Exception der Index -1 ist, heisst das, dass die Funktion getSelectedIndex -1 zurückgibt, ergo dass keine Zeile ausgewählt wurde.
 

Zurück
Oben