Er findet das Objekt vom BufferedWriter nicht....?

...komplette Frage anzeigen

2 Antworten

public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("ausgabe.txt");
BufferedWriter bw = new BufferedWriter(fw);

new MMGUI(); }

Da sich der Filewriter und BufferedWriter innerhalb einer Methode befinden, sind diese lokale Variablen, auf die auch nur innerhalb dieser Methode zugegriffen werden kann.

Wenn du diese nun in deine GUI verwenden willst, hätte ich hier zwei Ansätze für dich:

1. Du deklarierst deinen BufferedWriter als Instanz-Variable und initialisierst diese ggf. über den Konstruktor und greifst so von deiner GUI aus drauf zu.

Aber persönlich halte ich das für keine allzuschöne Lösung, da ich gerne nur dann eine Writer-Instanz aufmachen möchte, wenn ich auch vorhabe etwas zu schreiben. Weshalb ich auch zu Vorschlag 2 komme:

2. Du erstellst eine eigene Methode für das Schreiben in die Datei, auf die du von deinem Button beispielsweise zugreifst:

public static void writeFile(String context) {
   BufferedWriter bw = new BufferedWriter(new FileWriter("ausgabe.txt"));
    bw.write(context);
    ....
}
Antwort bewerten Vielen Dank für Deine Bewertung
chuckn0rris9 11.10.2016, 16:08

ich teste es gleich mal, danke erstmal :)

0

Deine Klasse MMGUI kennt nur die referenzen, die du ihr im Konstruktor übergeben hast.

Damit sie deinen BufferedWriter erkennt musst du die Zeile in deiner Main ändern und new MMGUI(bw) schreiben. Zusätzlich braucht deine MMGUI Klasse einen Konstruktor mit einem Attribut vom Typ BufferedWriter. Den speichert sie dann in einer Instanzvariable und schon kannst du auch in der jButton1_MouseClicked darauf zugreifen.

Siehe auch http://openbook.rheinwerk-verlag.de/javainsel/javainsel_05_005.html#dodtp0fb99ec7-7375-4695-94b1-a87706b8de58 für eine Erklärung, wie man einen Konstruktor schreibt.

Antwort bewerten Vielen Dank für Deine Bewertung
chuckn0rris9 11.10.2016, 15:15

also statt im main das Objekt anzulegen, im konstruktor anlegen? hab ich das richtig verstanden?

0
DexterNemrod 11.10.2016, 15:16
@chuckn0rris9

Entweder das oder das Objekt von der Main explizit an den Konstruktor übergeben.

0

Was möchtest Du wissen?