JFileChooser... dateispeicherpfad selbst aussuchen

HansK

Mitglied
Hallo,
Ich habe ein Programm geschrieben mit dem man Textdateien speichern kann.
Ich kann den Pfad zum speichern aber nur von Hand im Coding festlegen.
Jetzt möchte ich, das der User selbst entscheiden kann wo die Textdatei gespeichert werden kann.
Ich habe gelesen das das mit JFileChooser möglich ist, nur weiß ich nicht wie ich das mit meinem Button verknüpfen soll der speichert.

hier mal ein Codingausschnitt:

Java:
JButton button = new JButton( "speichern");
button.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e)
{
Textdatei();
}
});

Java:
public void Textdatei()
{
try
{
String name = textField.getText();
String name2 = textField2.getText();
File file = new File("C:\\Desktop\\xxdadsxx.txt");
FileWriter fw = new FileWriter(file);

fw.write(name+"\r\n");
fw.write(name2);

fw.flush();
fw.close();
}
catch( IOException ev )
{
ev.printStackTrace();
}
}
 
was gibt es da nicht zu wissen?
der Button führt zu Code, und Code enthält eben Codezeile1, Codezeile2, Codezeile3 usw.,
eine dieser Codezeilen muss der Aufruf des FileChoosers sein, so wie man es in Beispielen überall sieht
 
Ja aber wie soll ich das als Anfänger wissen wie das funktioniert.
Ich habe hier ein Beispiel im Internet gefunden.
Wie kann ich das in mein Coding einbinden?

Java:
// This action creates and shows a modal save-file dialog.
public class SaveFileAction extends AbstractAction {
    JFileChooser chooser;
    JFrame frame;

    SaveFileAction(JFrame frame, JFileChooser chooser) {
        super("Save As...");
        this.chooser = chooser;
        this.frame = frame;
    }

    public void actionPerformed(ActionEvent evt) {
        // Show dialog; this method does not return until dialog is closed
        chooser.showSaveDialog(frame);

        // Get the selected file
        File file = chooser.getSelectedFile();
    }
};
 
einfach Zeile für Zeile,
such dir eine Stelle aus wo das hinkommt, grundsätzlich ist jede geeignet,
im ActionListener vor Zeile 5 == Textdatei(); oder in Textdatei() vor/ anstelle Zeile 7
oder wo immer du willst, wobei natürlich der Code nach Ausführung des Buttons etwas begrenzt ist,
im Restprogramm helfen neue Code-Zeilen offensichtlich weniger

als nächstes kopieren, fange mit den beiden klaren Zeilen
> chooser.showSaveDialog(frame);
> File file = chooser.getSelectedFile();
an,
das gibt natürlich Fehlermeldungen, irgendwo musst du chooser definieren, z.B. in der Zeile davor, oder auch als Attribut,
vielleicht das frame besorgen, wobei evtl. auch null als Parameter geht,

außerdem musst du vielleich file an die Untermethode übergeben, falls direkt im ActionListener abgefragt,
Methoden übrigens unbedingt klein schreiben!

---


alles ist Arbeit die nach und nach erledigt werden muss,
wenn du eine konkrete Frage hast a la 'wie und wo muss ich den chooser definieren?', dann zeigt das schon etwas Eigeninitiative,
idealerweise noch kombiniert mit bereits durchdachten/ ausprobierten Varianten,
dann kann man dir auch mehr oder weniger gut konkret helfen,
aber grundsätzlich doch auch bisschen alleine probieren, Code-Zeilen kopieren schafft sogar ein Guttenberg 😉
 
Zuletzt bearbeitet von einem Moderator:
Wie Slater schon gesagt hat, solltest du dich mal etwas mehr mit der Klasse beschäftigen. Im Internet finden sich hunderte Beispielcodes zum anschauen.

Im Prinzip musst du ja festhalten, wo du dich momentan befindest und den aktuellen Pfad auslesen. Dafür gibt es Methoden a la getAbsolutePath() und Co. Den gelieferten String kannst du dann deinem File-objekt übergeben und es abspeichern.
 

Neue Themen


Zurück
Oben