JFileChooser.showSaveDialog(…) - how to set suggested file name

前端 未结 3 1098
后悔当初
后悔当初 2020-11-30 04:43

The JFileChooser seems to be missing afeature: a way to suggest the file name when saving a file (the thing that usually gets selected so that it would get repl

相关标签:
3条回答
  • 2020-11-30 04:54

    If that doesn't work, here is a workaround:

    dialog.getUI().setFileName( name )
    

    But you should check whether the selection mode is FILES_ONLY or FILES_AND_DIRECTORIES. If it's DIRECTORIES_ONLY, then setSelectedFile() will strip the file name.

    0 讨论(0)
  • 2020-11-30 05:02

    setSelectedFile doesn't work with directories as mentioned above, a solution is

        try {
            FileChooserUI fcUi = fileChooser.getUI();
            fcUi.setSelectedFile(defaultDir);
            Class<? extends FileChooserUI> fcClass = fcUi.getClass();
            Method setFileName = fcClass.getMethod("setFileName", String.class);
            setFileName.invoke(fcUi, defaultDir.getName());
        } catch (Exception e) {
            e.printStackTrace();
        }
    

    Unfortunately the setFileName is not included in the UI interface, thus the need to call it dynamically. Only tested on mac.

    0 讨论(0)
  • 2020-11-30 05:04

    If I understand you correctly, you need to use the setSelectedFile method.

    JFileChooser jFileChooser = new JFileChooser();
    jFileChooser.setSelectedFile(new File("fileToSave.txt"));
    jFileChooser.showSaveDialog(parent);
    

    The file doesn't need to exist.

    EDIT: If you pass a File with an absolute path, JFileChooser will try to position itself in that directory (if it exists).

    0 讨论(0)
提交回复
热议问题