Übergeben von Variablen in eine andere Methode

Mr_Klobuerste

Grünschnabel
Ich hoffe ich bin hier richtig :)

Ich hab ein kleines problem mit der übergabe einer Variable in eine andere Methode.

Ich rufe über einen FileChooser eine text datei auf und übergebe sie in die Variable "pfad" als "File" ( zur kontrolle lass ich sie noch in einer Textarea anzeigen, dies soll später nur noch eine ausgabe haben "Folgende Datei wurde geöffnet..." ). Mit einer anderen Methode möchte ich dann diese Datei erst einmal anzeigen lassen. Jedoch habe ich das Problem das ich beim aufrufen der Methode "showOpenFile" immer Null zurück bekomme. In der Methode "openLogFile" funktioniert natürlich das ausgeben der Datei. Ich habe die Variable Pfad in der public class MainFrame bekannt gegeben. Um euch das etwas besser zeigen zu können folgender Code:

Code:
public class MainFrame extends javax.swing.JFrame { ... }

    public File pfad;

Code:
    ///////////
    ///Öffnen der Log Datei
    ///////////
    public void openLogFile(ActionEvent evt) {
        
        JFileChooser chooser = new JFileChooser();
        int rueckgabeWert = chooser.showOpenDialog(null);
        if (rueckgabeWert == JFileChooser.APPROVE_OPTION) {
            jAusgabe.setText("Die folgende Datei wurde geöffnet: " + "\n"
                    + chooser.getSelectedFile().getPath() + "\n");
        }  
            if  (rueckgabeWert == JFileChooser.CANCEL_OPTION) {
            jAusgabe.setText("Abgebrochen");
        } 
        File pfad = chooser.getSelectedFile();
        try {
            jAusgabe.read(new FileReader(pfad), "");
        } catch (IOException e) {
            jAusgabe.setText("Error reading file: " + pfad);
        } 
    }
Code:
    ///////////
    // Log Datei anzeigen lassen
    ///////////
        public void showOpenFile(ActionEvent evt) {
        if (evt.getActionCommand().equals(jButtonOpen.getText())) {
            
            System.out.println(pfad);
            //jAusgabe.setText(pfad);
        }
        
    }

}

Was genau mach ich denn falsch? Bei
Code:
System.out.println(pfad);
bekomme ich immer "Null" zurück.

Ich glaube das ich einen Fehler mache beim übergeben der Variable...

Vielen dank für euren tipp
 
Zuletzt bearbeitet:

Akeshihiro

Erfahrenes Mitglied
Java:
File pfad = chooser.getSelectedFile();
Damit erzeugst du eine neue lokale Variable innerhalb der Methode selbst. Oder anders gesagt, du setzt nicht die Instanzvariable, sondern erzeugst eine neue.

Das muss so aussehen:
Java:
pfad = chooser.getSelectedFile();
 

Mr_Klobuerste

Grünschnabel
Alter... nee oder? So einfach? Ich sitz da seit 3 Tagen dran und fummle rum. Und nun.. es funktioniert. Ich fasse es nicht :-D Ey geil vielen vielen dank.