NullPointerException beim Checkbox-Label-Array mit nextLine()

SergiusPro

Mitglied
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:
        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();}
 
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.
 
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:
                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]);
                }
 
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?
 
Java:
                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
 
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!
 

Zurück
Oben