# JFileChooser Dateinamen vorgeben (Save Dialog)



## hdjks (29. Apr 2015)

Hi Leute!
Ich hab ein kleines Problemchen und ich wollte wissen, ob ihr mir vielleicht helfen könnt. Ich will wissen, ob es eine Möglichkeit gibt, beim JFileChooser das Feld, wo man den Namen eingibt, automatisch mit etwas füllen kann. Hier ist der Code:

```
import java.awt.EventQueue;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import javax.swing.JButton;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;


public class smt extends JFrame {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private JPanel contentPane;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    smt frame = new smt();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public smt() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 516, 485);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        JButton btnKlickMich = new JButton("Klick mich!");
        btnKlickMich.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                JFileChooser chooser = new JFileChooser();
                chooser.setDialogTitle("Speichern unter...");
                
                
                int smt = chooser.showSaveDialog(null);
                
                if (smt == JFileChooser.APPROVE_OPTION) {
                    File file = chooser.getSelectedFile();
                    if (file.exists()) {
                        file.delete();
                    }
                    try {
                        @SuppressWarnings("resource")
                        FileWriter fw = new FileWriter(file);
                        fw.write("Hey hey hey");
                        fw.flush();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        });
        btnKlickMich.setBounds(151, 203, 200, 50);
        contentPane.add(btnKlickMich);
    }
}
```

Danke im Voraus


----------



## hdjks (29. Apr 2015)

Ich weiß, man könnte es so machen:

```
FileWriter fw = new FileWriter ("Text" + file);
```
Aber ich will, dass der Dateiname in dem Dateiname:-Feld steht


----------



## Enceladus271 (29. Apr 2015)

JFileChooser.setSelectedFile ist glaube ich das was du suchst.


----------



## hdjks (30. Apr 2015)

Ja, allerdings existiert die Datei noch nicht und ich will, dass ein String in dem eingekreisten Feld steht:Anhang anzeigen 7699


----------



## Enceladus271 (30. Apr 2015)

Der Link zum Anhang scheint nicht zu funktionieren. Aber die Datei die du mit setSelectedFile setzt braucht nicht zu existieren. Und in dem Feld "Dateiname" steht dann der Name dieser Datei. Ich habs gerade getestet.


----------



## hdjks (30. Apr 2015)

Aber ich möchte einen String setzen, dass geht bei setSelectedFile() nicht


----------



## Enceladus271 (30. Apr 2015)

Wie gesagt: Die Datei muss nicht existieren und der Name wird in das Feld eingetragen. Um sicher zu gehen was ich meine:
chooser.setSelectedFile( new File( "test.txt" ) );
Dadurch steht dann "text.txt" im TextFeld.


----------



## hdjks (1. Mai 2015)

Klappt eben nicht!
Hier der Beweis:
[video]https://youtu.be/lcFsccYZXHA[/video]


----------



## Harry Kane (1. Mai 2015)

Du musst natürlich zuerst chooser.setSelectedFile( new File( "test.txt" ) ); aufrufen und dann den Dialog sichtbar machen.
So wie du es programmiert hast, wird zuerst der Dialog angezeigt, der user wählt ein File, klickt auf Speichern, der Dialog schliesst sich, du überschreibst die Auswahl die der user gerade gemacht hat, mit "Test.text", und speicherst dann unter Test.txt.


----------



## hdjks (1. Mai 2015)

Danke, hat geklappt!
Wie gesagt, ich bin ein Anfänger in Java


----------

