Hi,
wie einige, bei meiner nun 3. Frage, bestimmt schon wissen, arbeite ich an einem Hardwareverwaltungssystem ^^.
Bis jetzt werden Produkte einwandfrei hinzugefügt, zu der JTable hinzugefügt usw., allerdings habe ich ein Problem beim löschen, was auch klappt, allerdings war es erst so, dass man das Programm neu starten musste um die gelöschten Produkte nicht mehr in der Tabelle zu sehen. Habe mir gedacht ich lösche einfach den ganzen Inhalt der Tabelle und lese ihn neu aus.
Bekomme aber folgende Fehlermeldung:
Die Methode auslesen() rufe ich ja beim Start des Programms immer auf, daran kann es ja also nicht liegen. Falls aber doch ^^:
Danke schonmal, falls mir jemand weiterhelfen kann
lG
wie einige, bei meiner nun 3. Frage, bestimmt schon wissen, arbeite ich an einem Hardwareverwaltungssystem ^^.
Bis jetzt werden Produkte einwandfrei hinzugefügt, zu der JTable hinzugefügt usw., allerdings habe ich ein Problem beim löschen, was auch klappt, allerdings war es erst so, dass man das Programm neu starten musste um die gelöschten Produkte nicht mehr in der Tabelle zu sehen. Habe mir gedacht ich lösche einfach den ganzen Inhalt der Tabelle und lese ihn neu aus.
Java:
private void loeschen(String typ, String hersteller, String modell, String baujahr, String seriennummer, String lieferant, String preis) {
Loeschen loeschen = new Loeschen();
loeschen.loeschen(typ, hersteller, modell, baujahr, seriennummer, lieferant, preis);
int a = this.model.getColumnCount();
while(a > 0) {
this.model.removeRow(a);
a = a-1;
}
auslesen();
}
Bekomme aber folgende Fehlermeldung:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 7 >= 4
at java.util.Vector.removeElementAt(Vector.java:554)
at javax.swing.table.DefaultTableModel.removeRow(DefaultTableModel.java:463)
at HardwareVerwaltungsSystem.loeschen(HardwareVerwaltungsSystem.java:373)
at HardwareVerwaltungsSystem.access$900(HardwareVerwaltungsSystem.java:15)
at HardwareVerwaltungsSystem$6.actionPerformed(HardwareVerwaltungsSystem.java:323)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Wind.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
BUILD SUCCESSFUL (total time: 22 seconds)
Die Methode auslesen() rufe ich ja beim Start des Programms immer auf, daran kann es ja also nicht liegen. Falls aber doch ^^:
Java:
private void auslesen() {
Auslesen auslesen = new Auslesen();
ArrayList<Produkt> produkte = auslesen.auslesen();
System.out.println(produkte);
for (Produkt p : produkte) {
int size = model.getColumnCount();
String typ = p.getTyp();
String hersteller = p.getHersteller();
String modell = p.getModell();
String baujahr = p.getBaujahr();
String seriennummer = p.getSeriennummer();
String lieferant = p.getLieferant();
String preis = p.getPreis();
Vector newDatas = createDataVector(typ, hersteller, modell, baujahr, seriennummer, lieferant, preis, size);
model.addRow(newDatas);
}
}
Danke schonmal, falls mir jemand weiterhelfen kann
lG