Hallo,
ich möchte gerne per knopfdruck rows aus einer table löschen. Zum testen hat die row 5 Einträge(es ist auch möglich mehrere auf einmal zu löschen).
Wenn ich jetzt den 1 eintrag löschen möchte, bekomme ich folgende fehler Ausgabe:
Wenn ich jetzt erneut die tablle anklicke, dann verschwindet der erste Eintrag.
Löschen tue ich die einträge so:
Jemand eine Idee warum ich einen fehler bekomme, aber das löschen dennoch ausgeführt wird?
ich möchte gerne per knopfdruck rows aus einer table löschen. Zum testen hat die row 5 Einträge(es ist auch möglich mehrere auf einmal zu löschen).
Wenn ich jetzt den 1 eintrag löschen möchte, bekomme ich folgende fehler Ausgabe:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.Vector.elementAt(Vector.java:430)
at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:632)
at stockanalytic3.MainUI.MainUI.getSelectedStockFromTable(MainUI.java:99)
at stockanalytic3.MainUI.MainUI$1.valueChanged(MainUI.java:60)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:147)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:194)
at javax.swing.DefaultListSelectionModel.removeIndexInterval(DefaultListSelectionModel.java:660)
at javax.swing.JTable.tableRowsDeleted(JTable.java:4497)
at javax.swing.JTable.tableChanged(JTable.java:4400)
at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:280)
at javax.swing.table.AbstractTableModel.fireTableRowsDeleted(AbstractTableModel.java:245)
at javax.swing.table.DefaultTableModel.removeRow(DefaultTableModel.java:447)
at stockanalytic3.MainUI.MainUI.deleteBtMouseClicked(MainUI.java:232)
at stockanalytic3.MainUI.MainUI.access$200(MainUI.java:28)
at stockanalytic3.MainUI.MainUI$4.mouseClicked(MainUI.java:176)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
at java.awt.Component.processMouseEvent(Component.java:6385)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
at java.awt.Component.processEvent(Component.java:6147)
at java.awt.Container.processEvent(Container.java:2083)
at java.awt.Component.dispatchEventImpl(Component.java:4744)
at java.awt.Container.dispatchEventImpl(Container.java:2141)
at java.awt.Component.dispatchEvent(Component.java:4572)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4619)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4289)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4210)
at java.awt.Container.dispatchEventImpl(Container.java:2127)
at java.awt.Window.dispatchEventImpl(Window.java:2489)
at java.awt.Component.dispatchEvent(Component.java:4572)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:704)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:677)
at java.awt.EventQueue$3.run(EventQueue.java:675)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:674)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Wenn ich jetzt erneut die tablle anklicke, dann verschwindet der erste Eintrag.
Löschen tue ich die einträge so:
Java:
DefaultTableModel model = (DefaultTableModel) stockTable.getModel();
int[] i = stockTable.getSelectedRows();
System.out.println("I:"+i[0]);
for (int x=0;x<i.length;x++)
{
model.removeRow(i[x]);
stockTable.revalidate();
}
Jemand eine Idee warum ich einen fehler bekomme, aber das löschen dennoch ausgeführt wird?