Kann sich jemand mal folgenden Code anschauen ich finde einfach nicht den Fehler ...

Bratkartoffel

gebratene Kartoffel
Premium-User
Siehe
http://www.tutorials.de/java/386526...nde-einfach-nicht-den-fehler.html#post1999493.

Ich würd mal schwer darauf tippen, dass es folgende Zeile ist:
Java:
text.setText("" + zeile);
An der Stelle ist text anscheinend noch null.

Dies liegt daran, dass du im Konstruktor von Layouttest() in Zeile 45 eine neue Instanz von FileReadWriteExample erstellst. Wenn diese initialisiert wird, ist text darin noch null. text wird erst später initialisiert (Zeile 94).

Grüße,
BK
 

fm it

Mitglied
und was genau muss ich jetzt veränder ? :DD
sry. versteh das echt nicht :DF

antworten ausgeschlossen ? :D
 
Zuletzt bearbeitet von einem Moderator:

sheel

I love Asm
Du solltest dir sehr dringend Grundlagen aneignen.
Einfacher kann als Bratkartoffel ich es auch nicht erklären.

Wenn du ein "new Layouttest()" machst wird zuerst mal der KonstruktorLayouttest() aufgerufen.
Der wird Zeile für Zeile von oben nach unten abgearbeitet.

Eine Zeile von Layouttest() ist
Java:
FileReadWriteExample lu = new FileReadWriteExample();
Da wird uA. der Konstruktor FileReadWriteExample() ausgeführt, komplett,
bevor es in Layouttest() weiter geht.

Später in Layouttest hast du noch ein
Java:
text = new JTextArea();
Erst nach FileReadWriteExample()
Dieses verwendet text aber schon, das es zu dem Zeitpunkt noch gar nicht gibt.

Lösung: Reihenfolge ändern.
Zuerst text machen, dann FileReadWriteExample.

Und bitte keine Push-/Doppelposts.
 

sheel

I love Asm
Bist du sicher, dass es nicht die letzte Zeile ist?

Dieser Code im FileReadWriteExample
Java:
String zeile = null;
while ((zeile = in.readLine()) != null) {
    text.setText("" + zeile);
}
Liest eine Zeile, rein ins text,
liest die nächste Zeile, rein ins text:
dabei wird er alte Inhalt überschrieben.
Am Schluss überschreibt die letzte Zeile die Vorletzte.

Das ""+ ist übrigens überflüssig.

Lösung: += statt =