G
Guest
Gast
hallo!
ich hab drei tabellen erstellt (Einnahme, Ausgabe,Bilanz). ich würde jetzt gerne die datensätze der tabelle einnahme mit den datensätzen der tabelle ausgaben subtrahieren und in die tabelle bilanz schreiben.
leider hab ich bei: jTable1.getValueAt(e,1).equals(null) ein problem. wenn sich jetzt in einem feld nichts befindet, dann bekomme ich automatisch diese exception:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
at java.util.Vector.elementAt(Vector.java:431)
at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:632)
at javax.swing.JTable.getValueAt(JTable.java:2697)
at GUIFinanzDiagramm.Bilanz(GUIFinanzDiagramm.java:267)
at GUIFinanzDiagramm.<init>(GUIFinanzDiagramm.java:18)
at GUIH.jButton52ActionPerformed(GUIH.java:1933)
at GUIH.access$2800(GUIH.java:15)
at GUIH$31.actionPerformed(GUIH.java:1043)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:377)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:232)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5999)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3240)
at java.awt.Component.processEvent(Component.java:5764)
at java.awt.Container.processEvent(Container.java:1984)
at java.awt.Component.dispatchEventImpl(Component.java:4407)
at java.awt.Container.dispatchEventImpl(Container.java:2042)
at java.awt.Component.dispatchEvent(Component.java:4237)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4248)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3912)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3842)
at java.awt.Container.dispatchEventImpl(Container.java:2028)
at java.awt.Window.dispatchEventImpl(Window.java:2405)
at java.awt.Component.dispatchEvent(Component.java:4237)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:600)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
die tabelle hat die monate als header, also stimmt schon die zahl 12 in der for schleife. alle datenfelder in der tabelle sind strings. hier der code von der methode:
danke im voraus!
ich hab drei tabellen erstellt (Einnahme, Ausgabe,Bilanz). ich würde jetzt gerne die datensätze der tabelle einnahme mit den datensätzen der tabelle ausgaben subtrahieren und in die tabelle bilanz schreiben.
leider hab ich bei: jTable1.getValueAt(e,1).equals(null) ein problem. wenn sich jetzt in einem feld nichts befindet, dann bekomme ich automatisch diese exception:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
at java.util.Vector.elementAt(Vector.java:431)
at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:632)
at javax.swing.JTable.getValueAt(JTable.java:2697)
at GUIFinanzDiagramm.Bilanz(GUIFinanzDiagramm.java:267)
at GUIFinanzDiagramm.<init>(GUIFinanzDiagramm.java:18)
at GUIH.jButton52ActionPerformed(GUIH.java:1933)
at GUIH.access$2800(GUIH.java:15)
at GUIH$31.actionPerformed(GUIH.java:1043)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:377)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:232)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5999)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3240)
at java.awt.Component.processEvent(Component.java:5764)
at java.awt.Container.processEvent(Container.java:1984)
at java.awt.Component.dispatchEventImpl(Component.java:4407)
at java.awt.Container.dispatchEventImpl(Container.java:2042)
at java.awt.Component.dispatchEvent(Component.java:4237)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4248)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3912)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3842)
at java.awt.Container.dispatchEventImpl(Container.java:2028)
at java.awt.Window.dispatchEventImpl(Window.java:2405)
at java.awt.Component.dispatchEvent(Component.java:4237)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:600)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
die tabelle hat die monate als header, also stimmt schon die zahl 12 in der for schleife. alle datenfelder in der tabelle sind strings. hier der code von der methode:
public void Bilanz()
{
String a, b = "";
String[] as = new String[13];
String[] bs = new String[13];
Integer ergebnis[] = new Integer[13];
for(int e = 1; e <12; e++)
{
if(jTable1.getValueAt(e,1).equals(null)) { // <------- FEHLER wenn datensatz NULL ist
a = "0";
} else {
a = jTable1.getValueAt(e,1).toString();
}
if(jTable2.getValueAt(e,1).equals(null)) {
b = "0";
} else {
b = jTable1.getValueAt(e,1).toString();
}
System.out.println(a);
ergebnis[e] = Integer.valueOf(a).intValue() - Integer.valueOf(b).intValue();
jTable3.setValueAt(ergebnis[e],0,e);
}
}
danke im voraus!