Merkwürdige Fehlermeldung bei nutzung von swing und jTable

dastool

Erfahrenes Mitglied
Hallo, ich hab hier ein kleines Tool zusammengestellt um eine art statistikf für die lotto zahlen zu machen (biss sinfrei aber gut zum üben :) )
Aber, seit ich von der ausgabe auf die konsole auf eine Tabelle umspringen wollte, kommt nun eine fehler meldung:

java.lang.NumberFormatException: For input string: "Datum"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at Lotto.init(Lotto.java:140)
at sun.applet.AppletPanel.run(AppletPanel.java:435)
at java.lang.Thread.run(Thread.java:744)



Hier der code... evtl kann einer weiterhelfen, ich blicks nicht :D

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.io.*;
import java.lang.StringBuffer;
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 27.05.2014
  * @author Martin Brenner
  */

public class Lotto extends JApplet {
  // Anfang Attribute
  private JTable jTable1 = new JTable(2, 7);
    private DefaultTableModel jTable1Model = (DefaultTableModel) jTable1.getModel();
    private JScrollPane jTable1ScrollPane = new JScrollPane(jTable1);
  private JTable jTable2 = new JTable(2, 7);
    private DefaultTableModel jTable2Model = (DefaultTableModel) jTable2.getModel();
    private JScrollPane jTable2ScrollPane = new JScrollPane(jTable2);
  private JTable jTable3 = new JTable(2, 7);
    private DefaultTableModel jTable3Model = (DefaultTableModel) jTable3.getModel();
    private JScrollPane jTable3ScrollPane = new JScrollPane(jTable3);
  private JTable jTable4 = new JTable(2, 7);
    private DefaultTableModel jTable4Model = (DefaultTableModel) jTable4.getModel();
    private JScrollPane jTable4ScrollPane = new JScrollPane(jTable4);
  private JTable jTable5 = new JTable(2, 7);
    private DefaultTableModel jTable5Model = (DefaultTableModel) jTable5.getModel();
    private JScrollPane jTable5ScrollPane = new JScrollPane(jTable5);
  private JTable jTable6 = new JTable(2, 7);
    private DefaultTableModel jTable6Model = (DefaultTableModel) jTable6.getModel();
    private JScrollPane jTable6ScrollPane = new JScrollPane(jTable6);
  private JTable jTable7 = new JTable(2, 7);
    private DefaultTableModel jTable7Model = (DefaultTableModel) jTable7.getModel();
    private JScrollPane jTable7ScrollPane = new JScrollPane(jTable7);
   
    int anzahlZeilen = 0,i = 0,j = 0,merken =0;
    int a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,a9=0,b0=0,b1=0,b2=0,b3=0,b4=0;
    int b5=0,b6=0,b7=0,b8=0,b9=0,c0=0,c1=0,c2=0,c3=0,c4=0,c5=0,c6=0,c7=0,c8=0;
    int c9=0,d0=0,d1=0,d2=0,d3=0,d4=0,d5=0,d6=0,d7=0,d8=0,d9=0,e0=0,e1=0,e2=0;
    int e3=0,e4=0,e5=0,e6=0,e7=0,e8=0,e9=0;
  // Ende Attribute
 
  public void init() {
    Container cp = getContentPane();
    cp.setLayout(null);
    cp.setBounds(0, 0, 544, 365);
    // Anfang Komponenten
   
    jTable1ScrollPane.setBounds(8, 8, 508, 38);
    jTable1.setEnabled(true);
    jTable1.getColumnModel().getColumn(0).setHeaderValue("1");
    jTable1.getColumnModel().getColumn(1).setHeaderValue("2");
    jTable1.getColumnModel().getColumn(2).setHeaderValue("3");
    jTable1.getColumnModel().getColumn(3).setHeaderValue("4");
    jTable1.getColumnModel().getColumn(4).setHeaderValue("5");
    jTable1.getColumnModel().getColumn(5).setHeaderValue("6");
    jTable1.getColumnModel().getColumn(6).setHeaderValue("7");
    jTable1.setRowHeight(18);
    jTable1.setRowSelectionAllowed(false);
    cp.add(jTable1ScrollPane);
    jTable2ScrollPane.setBounds(8, 48, 508, 38);
    jTable2.getColumnModel().getColumn(0).setHeaderValue("8");
    jTable2.getColumnModel().getColumn(1).setHeaderValue("9");
    jTable2.getColumnModel().getColumn(2).setHeaderValue("10");
    jTable2.getColumnModel().getColumn(3).setHeaderValue("11");
    jTable2.getColumnModel().getColumn(4).setHeaderValue("12");
    jTable2.getColumnModel().getColumn(5).setHeaderValue("13");
    jTable2.getColumnModel().getColumn(6).setHeaderValue("14");
    jTable2.setRowHeight(18);
    cp.add(jTable2ScrollPane);
    jTable3ScrollPane.setBounds(8, 88, 508, 46);
    jTable3.setRowHeight(18);
    jTable3.getColumnModel().getColumn(0).setHeaderValue("15");
    jTable3.getColumnModel().getColumn(1).setHeaderValue("16");
    jTable3.getColumnModel().getColumn(2).setHeaderValue("17");
    jTable3.getColumnModel().getColumn(3).setHeaderValue("18");
    jTable3.getColumnModel().getColumn(4).setHeaderValue("19");
    jTable3.getColumnModel().getColumn(5).setHeaderValue("20");
    jTable3.getColumnModel().getColumn(6).setHeaderValue("21");
    cp.add(jTable3ScrollPane);
    jTable4ScrollPane.setBounds(8, 136, 508, 38);
    jTable4.setRowHeight(18);
    jTable4.getColumnModel().getColumn(0).setHeaderValue("22");
    jTable4.getColumnModel().getColumn(1).setHeaderValue("23");
    jTable4.getColumnModel().getColumn(2).setHeaderValue("24");
    jTable4.getColumnModel().getColumn(3).setHeaderValue("25");
    jTable4.getColumnModel().getColumn(4).setHeaderValue("26");
    jTable4.getColumnModel().getColumn(5).setHeaderValue("27");
    jTable4.getColumnModel().getColumn(6).setHeaderValue("28");
    cp.add(jTable4ScrollPane);
    jTable5ScrollPane.setBounds(8, 176, 508, 46);
    jTable5.setRowHeight(18);
    jTable5.getColumnModel().getColumn(0).setHeaderValue("29");
    jTable5.getColumnModel().getColumn(1).setHeaderValue("30");
    jTable5.getColumnModel().getColumn(2).setHeaderValue("31");
    jTable5.getColumnModel().getColumn(3).setHeaderValue("32");
    jTable5.getColumnModel().getColumn(4).setHeaderValue("33");
    jTable5.getColumnModel().getColumn(5).setHeaderValue("34");
    jTable5.getColumnModel().getColumn(6).setHeaderValue("35");
    cp.add(jTable5ScrollPane);
    jTable6ScrollPane.setBounds(8, 224, 508, 46);
    jTable6.setRowHeight(18);
    jTable6.getColumnModel().getColumn(0).setHeaderValue("36");
    jTable6.getColumnModel().getColumn(1).setHeaderValue("37");
    jTable6.getColumnModel().getColumn(2).setHeaderValue("38");
    jTable6.getColumnModel().getColumn(3).setHeaderValue("39");
    jTable6.getColumnModel().getColumn(4).setHeaderValue("40");
    jTable6.getColumnModel().getColumn(5).setHeaderValue("41");
    jTable6.getColumnModel().getColumn(6).setHeaderValue("42");
    cp.add(jTable6ScrollPane);
    jTable7ScrollPane.setBounds(8, 272, 508, 46);
    jTable7.setRowHeight(18);
    jTable7.getColumnModel().getColumn(0).setHeaderValue("43");
    jTable7.getColumnModel().getColumn(1).setHeaderValue("44");
    jTable7.getColumnModel().getColumn(2).setHeaderValue("45");
    jTable7.getColumnModel().getColumn(3).setHeaderValue("46");
    jTable7.getColumnModel().getColumn(4).setHeaderValue("47");
    jTable7.getColumnModel().getColumn(5).setHeaderValue("48");
    jTable7.getColumnModel().getColumn(6).setHeaderValue("49");
    cp.add(jTable7ScrollPane);
   
   
    try{
      BufferedReader eingabe = new BufferedReader(new FileReader("lotto.csv"));   // Datei inhalt buffern
      String zeile, s=",",sZeile = null;
     
      while ((zeile = eingabe.readLine()) != null)
      {
       
        for (int n = 0; n <= 6 ; n++ ) {
         
          i = zeile.indexOf(s);                   //"," suchen
         
          if (i != -1) {
            sZeile = zeile.substring(0,i);          //string zerteilen
            merken = Integer.parseInt(sZeile);      // zahlen in int speichern
            j = zeile.length();
            zeile = zeile.substring((i+1),j);          //String bis "," löschen
          } // end of if
          else
          n= 6;
          /*
          System.out.println("Position i: "+i+"\n");
          System.out.println("sZeile: "+sZeile+"\n");
          System.out.println("merken "+merken+"\n");
          System.out.println("Länge "+j+"\n");
          System.out.println("zeil 2 "+zeile+"\n\n");
          */
          switch (merken) {
            case 1 :
            a1++;
            break;
            case 2 :
            a2++;
            break;
            case 3 :
            a3++;
            break;
            case 4 :
            a4++;
            break;
            case 5 :
            a5++;
            break;
            case 6 :
            a6++;
            break;
            case 7 :
            a7++;
            break;
            case 8 :
            a8++;
            break;
            case 9 :
            a9++;
            break;
            case 10 :
            b0++;
            break;
            case 11 :
            b1++;
            break;
            case 12 :
            b2++;
            break;
            case 13 :
            b3++;
            break;
            case 14 :
            b4++;
            break;
            case 15 :
            b5++;
            break;
            case 16 :
            b6++;
            break;
            case 17 :
            b7++;
            break;
            case 18 :
            b8++;
            break;
            case 19 :
            b9++;
            break;
            case 20 :
            c0++;
            break;
            case 21 :
            c1++;
            break;
            case 22 :
            c2++;
            break;
            case 23 :
            c3++;
            break;
            case 24 :
            c4++;
            break;
            case 25 :
            c5++;
            break;
            case 26 :
            c6++;
            break;
            case 27 :
            c7++;
            break;
            case 28 :
            c8++;
            break;
            case 29 :
            c9++;
            break;
            case 30 :
            d0++;
            break;
            case 31 :
            d1++;
            break;
            case 32 :
            d2++;
            break;
            case 33 :
            d3++;
            break;
            case 34 :
            d4++;
            break;
            case 35 :
            d5++;
            break;
            case 36 :
            d6++;
            break;
            case 37 :
            d7++;
            break;
            case 38 :
            d8++;
            break;
            case 39 :
            d9++;
            break;
            case 40 :
            e1++;
            break;
            case 41 :
            e2++;
            break;
            case 42 :
            e3++;
            break;
            case 43 :
            e4++;
            break;
            case 44 :
            e4++;
            break;
            case 45 :
            e5++;
            break;
            case 46 :
            e6++;
            break;
            case 47 :
            e7++;
            break;
            case 48 :
            e8++;
            break;
            case 49 :
            e9++;
            break;
            default:
           
          } // end of switch
         
        } // end of for
       
        anzahlZeilen++;                               //zeilenanzahl hochzählen   
      } // end of while 
     
      jTable1.setValueAt(a1,1,0);
      /*
      //System.out.println("zeilchen: "+sZeile+" i: "+i+" merken: "+merken); //test
      System.out.println(""+
      "Zahl 01 ist "+a1+" mal vorgekommen. \nZahl 02 ist "+a2+" mal vorgekommen. \n"+
      "Zahl 03 ist "+a3+" mal vorgekommen. \nZahl 04 ist "+a4+" mal vorgekommen. \n"+
      "Zahl 05 ist "+a5+" mal vorgekommen. \nZahl 06 ist "+a6+" mal vorgekommen. \n"+
      "Zahl 07 ist "+a7+" mal vorgekommen. \nZahl 08 ist "+a8+" mal vorgekommen. \n"+
      "Zahl 09 ist "+a9+" mal vorgekommen. \nZahl 10 ist "+b0+" mal vorgekommen. \n"+
      "Zahl 11 ist "+b1+" mal vorgekommen. \nZahl 12 ist "+b2+" mal vorgekommen."+
      "\nZahl 13 ist "+b3+" mal vorgekommen. \nZahl 14 ist "+b4+" mal vorgekommen."+
      "\nZahl 15 ist "+b5+" mal vorgekommen. \nZahl 16 ist "+b6+" mal vorgekommen."+
      "\nZahl 17 ist "+b7+" mal vorgekommen. \nZahl 18 ist "+b8+" mal vorgekommen."+
      "\nZahl 19 ist "+b9+" mal vorgekommen. \nZahl 20 ist "+c0+" mal vorgekommen."+
      "\nZahl 21 ist "+c1+" mal vorgekommen. \nZahl 22 ist "+c2+" mal vorgekommen."+
      "\nZahl 23 ist "+c3+" mal vorgekommen. \nZahl 24 ist "+c4+" mal vorgekommen."+
      "\nZahl 25 ist "+c5+" mal vorgekommen. \nZahl 26 ist "+c6+" mal vorgekommen."+
      "\nZahl 27 ist "+c7+" mal vorgekommen. \nZahl 28 ist "+c8+" mal vorgekommen."+
      "\nZahl 29 ist "+c9+" mal vorgekommen. \nZahl 30 ist "+d0+" mal vorgekommen."+
      "\nZahl 31 ist "+d1+" mal vorgekommen. \nZahl 32 ist "+d2+" mal vorgekommen."+
      "\nZahl 33 ist "+d3+" mal vorgekommen. \nZahl 34 ist "+d4+" mal vorgekommen."+
      "\nZahl 35 ist "+d5+" mal vorgekommen. \nZahl 36 ist "+d6+" mal vorgekommen."+
      "\nZahl 37 ist "+d7+" mal vorgekommen. \nZahl 38 ist "+d8+" mal vorgekommen."+
      "\nZahl 39 ist "+d9+" mal vorgekommen. \nZahl 40 ist "+e0+" mal vorgekommen."+
      "\nZahl 41 ist "+e1+" mal vorgekommen. \nZahl 42 ist "+e2+" mal vorgekommen."+
      "\nZahl 43 ist "+e3+" mal vorgekommen. \nZahl 44 ist "+e4+" mal vorgekommen."+
      "\nZahl 45 ist "+e5+" mal vorgekommen. \nZahl 46 ist "+e6+" mal vorgekommen."+
      "\nZahl 47 ist "+e7+" mal vorgekommen. \nZahl 48 ist "+e8+" mal vorgekommen."+
      "\nZahl 49 ist "+e9+" mal vorgekommen."); */ 
     
    }
    
   
    catch (Exception ex) {
      ex.printStackTrace();
    }
   
   
   
    // Ende Komponenten
   
  } // end of init
 
  // Anfang Methoden
  // Ende Methoden
 
} // end of class Lotto

ich denke das geht auch einfacher, aber im moment hab ich keinen blassen schimmer wie ich den code "komprimieren" könnte. Auch da bin ich für anregungen offen :)
 

saftmeister

Nutze den Saft!
Zu deiner Fehlermeldung:

"java.lang.NumberFormatException: For input string: "Datum""

Heißt soviel wie "Hilfe, ich kann den Text 'Datum' nicht in eine Zahl umwandeln.". Weil der Text "Datum" nunmal keine Zahl darstellt. Vermutlich liegt es daran, dass dein CSV in der ersten Zeile die Kopf-Daten einthält, die beschreiben, was in welcher Spalte für ein Wert steht. Diese Zeile solltest du ggf. überspringen. Das kannst du bspw. mit einer boolean-Variable erreichen, die zu Beginn auf false initialisiert ist, in der Schleife auf false geprüft => auf true gesetzt, dann continue.