Ich untergliedere JTable und verwende ein DefaultTableModel, um meine Tabellendaten zu modellieren. Die folgende Klasse richtet die JTable ein und fügt dem Modell eine Zeile hinzu.
%Vor%Zur Anzeige- / Visualisierungszeit wird die folgende Ausnahme ausgelöst:
%Vor%Ich reiße mir die Haare aus - ich konnte die Ursache dieses immens einfachen Anwendungsfalls nicht finden.
Ich habe auch dieses Problem (mit einer JList und einem DefaultListModel) ausgeführt. Dmitrys Antwort ist richtig.
Allerdings gibt es noch etwas anderes: Diese Ausnahme kann auch ausgelöst werden, wenn Sie das Modell in Swing's Event Dispatch Thread nicht ändern.
Wenn Sie Folgendes tun, können Sie diese Ausnahme vermeiden:
%Vor%Von der API JTable.setAutoCreateColumnsFromModel ():
"Diese Methode ruft createDefaultColumnsFromModel auf, wenn sich autoCreateColumnsFromModel von false in true ändert."
Vector löst ArrayIndexOutOfBoundsException aus - wenn der Index außerhalb des gültigen Bereichs liegt (Index & lt; 0 || index & gt; = size ())
Ich denke, das Tabellenmodell fehlt die Spalten, wie von Dmitry vorgeschlagen
Ich war mit diesem Problem konfrontiert, weil ich der JTable Spalten und Zeilen hinzufügte, nicht dem Modell.
Der beste Weg ist das.
%Vor% Ein weiteres Problem könnte zusammenhängen, wenn Sie RowSorter
verwenden. Wenn Sie das Modell bearbeiten RowSorter
probiert das alte Modell neu zu sortieren. Es sollte automatisch neu erstellt und bei jeder Änderung des Tabellenmodells erneut ausgeführt werden.
Sie können das Problem mit
beheben %Vor%-Hayri