# NullPointerException beim Checkbox-Label-Array mit nextLine()



## SergiusPro (3. Jan 2011)

Guten Tag allerseits!

Ich will Checkboxen aus einem Checkbox-Array erstellen, für den die Checbox-Labels aus einer TXT-Datei (pro Zeile ein Label je Checkbox) eingelesen werden. Im folgenden Java-Code bekomme ich NullPointerException in der Zeile mit checkboxlabel_ = s.nextLine(); und verstehe nicht, wo das Problem ist, kann mir jemand helfen?

P.S. Das Einlesen der Labels aus einer TXT-Datei funktionierte mit checkboxlabel = s.nextLine();, also ohne Array, das erzeugte aber Checkboxen, die ich dann nicht einzeln ansprechen kann. Ich brauche aber einen Checkbox-Array für eine weitere Variablenzuordnung für einzelne (angeklickte) indizierte Checkboxen.



		Java:In die Zwischenablage kopieren


        int total = 0;
        int i;
        Checkbox[] checkbox;
        String[] checkboxlabel;
        Panel cams = new Panel();
        try
        {
            FileReader fr = new FileReader("checkboxes.txt");
            LineNumberReader lnr = new LineNumberReader(fr);
            while (lnr.readLine() != null){total++;}
            cams.setLayout(new GridLayout(total,1));
            Scanner s = new Scanner(new File("checkboxes.txt"));
            while (s.hasNextLine())
            {
                for (i=1; i < total; i++)
                {
                checkboxlabel[i] = s.nextLine();
                checkbox[i] = new Checkbox(checkboxlabel[i]);
                cams.add(checkbox[i]);
                }
            }
        }
        catch (IOException ioe) {ioe.printStackTrace();}

_


----------



## Final_Striker (3. Jan 2011)

Weil die Arrays checkbox und checkboxlabel NULL sind. ;-)

Du musst die Array ja auch zuerst erstellen z.B:

[c]String[] checkboxlabel = new String[10];[/c]

oder nutze eine Liste.


----------



## SergiusPro (3. Jan 2011)

Stimmt! 

Nun, weil ich ja nicht eine bekannte Anzahl von Checkboxen erzeugen will, sondern genau so viele, wieviele Zeilen (und diese Anzahl kann variabel sein und wird eben in der Variable 'total' gespeichert) je Checkbox in der TXT-Datei gegeben sind, so habe ich nun folgenden Java-Code. Aber jetzt kriege ich eine ganz komische NoSuchElementException in der Zeile mit checkboxlabel_ = s.nextLine();. Was ist schon wieder falsch bei mir?



		Java:In die Zwischenablage kopieren


                checkboxlabel = new String[total];
                checkbox = new Checkbox[total];
                for (i=1; i < total; i++)
                {
                checkboxlabel[i] = s.nextLine();
                checkbox[i] = new Checkbox(checkboxlabel[i]);
                cams.add(checkbox[i]);
                }

_


----------



## SlaterB (3. Jan 2011)

weißt du denn was die Buchstaben 's.nextLine();' in diesem Zusammenhang bedeuten, was dieser Code für einen Sinn hat?
besonders zusammen mit 'while (s.hasNextLine())'?

wenn nein, dann kann man darüber kaum diskutieren,
wenn ja dann ist doch die Fehlermeldung 'nix mehr da was ich als next liefern könnte' recht plausibel?


----------



## bone2 (3. Jan 2011)

```
for (i=1; i < total; i++)
                {
                    System.out.println(s.nextLine());
                    checkbox[i] = new Checkbox(checkboxlabel[i]);
                    cams.add(checkbox[i]);
                }
```

log ausgaben erzeugen kann sehr hilfreich sein, probier das mal


----------



## SergiusPro (3. Jan 2011)

Natürlich weiß ich, was "die Buchstaben" bedeuten, die sind doch von mir geschrieben worden, und, wie schon gesagt, es funktionierte ohne Array, und die TXT-Datei ist nicht leer.

Das Problem habe ich gefunden, es lag an der FOR-Schleife...

Dake, Final Striker!


----------



## bone2 (3. Jan 2011)

SergiusPro hat gesagt.:


> Natürlich weiß ich, was "die Buchstaben" bedeuten, die sind doch von mir geschrieben worden,



aber die logik der doppelschleifen ist ziemlich falsch dafür das du weißt was es "bedeutet"


----------

