65

JFileChooserファイルを保存するときにファイル名を提案する方法 (通常、ユーザーが入力を開始したときに置き換えられるように選択されるもの) という機能が欠けているようです。

これを回避する方法はありますか?

4

3 に答える 3

115

私があなたを正しく理解しているなら、あなたはそのsetSelectedFile方法を使う必要があります。

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

ファイルが存在する必要はありません。

絶対パスでファイルを渡すとJFileChooser、そのディレクトリに自分自身を配置しようとします (存在する場合)。

于 2008-12-10T16:38:58.313 に答える
4

setSelectedFileは、上記のようにディレクトリでは機能しません。解決策は次のとおりです。

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();
}

残念ながら、setFileNameUIインターフェースには含まれていないため、動的に呼び出す必要があります。Macでのみテストされています。

于 2012-02-02T20:23:30.090 に答える
1

それでもうまくいかない場合は、次の回避策があります。

dialog.getUI().setFileName( name )

ただし、選択モードがFILES_ONLYまたはであるかどうかを確認する必要がありますFILES_AND_DIRECTORIES。の場合DIRECTORIES_ONLYsetSelectedFile()ファイル名が削除されます。

于 2011-07-11T15:18:24.593 に答える