15. maj 2005 - 15:55Der er
12 kommentarer og 1 løsning
Index Out Of Bounds Exeption
Vi forstår godt fejlen men ikke hvorfor den opstår! Det er når vi kalder følgende metode.
public void removeAll() { int slut = data.size(); data.clear(); fireTableRowsDeleted(0, slut); }
Det virker helt fint hvis ikke vi har rettet i nogen af de værdier der findes i databasen, men hvis vi retter bare lidt i en kolonne så får vi denne fejl
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.get(ArrayList.java:326)
at mypackage.ReserverVareGui$VoresModel.getValueAt(ReserverVareGui.java:432)
at javax.swing.JTable.getValueAt(JTable.java:1771)
at mypackage.ReserverVareGui$1.valueChanged(ReserverVareGui.java:117)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:214)
at javax.swing.DefaultListSelectionModel.removeIndexInterval(DefaultListSelectionModel.java:546)
at javax.swing.JTable.tableRowsDeleted(JTable.java:2971)
at javax.swing.JTable.tableChanged(JTable.java:2874)
at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:280)
at javax.swing.table.AbstractTableModel.fireTableRowsDeleted(AbstractTableModel.java:245)
at mypackage.ReserverVareGui$VoresModel.removeAll(ReserverVareGui.java:458)
at mypackage.ReserverVareGui.jButton5_actionPerformed(ReserverVareGui.java:381)
at mypackage.ReserverVareGui.access$6000471(ReserverVareGui.java:29)
at mypackage.ReserverVareGui$4.actionPerformed(ReserverVareGui.java:150)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java)
at java.awt.Component.dispatchEvent(Component.java)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:458)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
hvorfor? hvordan kan vi lave metoden removeAll bedre?
Vi genstarter lige maskinen. Kom endelig med flere forslag vi er sikre på det er den metode der brokker sig for da vi udkommenterede den virkede det fint, men der var bare det problem, at vores arraylist ikke blev nulstillet.
samme fejl. Burde den overhovedet brokke sig her? Vi trækker data op fra databasen og de gemmes i vores arraylist som hedder data. Vi retter efterfølgende i en kolonnes værdi og laver en helt ny søgning hvor alt bliver hevet op fra databasen igen.
okay vi valgte at løse det med vores try catch block. Det mystiske var, at anden gang man trykkede på søg knappen så virkede det fint! Nu kalder vi derfor removeAll i catch delen så det ser ud til at fungere fint for brugeren.
Det er bare mystisk vi skal kalde clear to gange før det virker. Størrelsen af vores array skulle ikke have ændret sig siden sidst nemlig.
Vi retter kun nede i databasen og ikke vores application.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.