JFileChooser
ファイルを保存するときにファイル名を提案する方法 (通常、ユーザーが入力を開始したときに置き換えられるように選択されるもの) という機能が欠けているようです。
これを回避する方法はありますか?
JFileChooser
ファイルを保存するときにファイル名を提案する方法 (通常、ユーザーが入力を開始したときに置き換えられるように選択されるもの) という機能が欠けているようです。
これを回避する方法はありますか?
私があなたを正しく理解しているなら、あなたはそのsetSelectedFile
方法を使う必要があります。
JFileChooser jFileChooser = new JFileChooser();
jFileChooser.setSelectedFile(new File("fileToSave.txt"));
jFileChooser.showSaveDialog(parent);
ファイルが存在する必要はありません。
絶対パスでファイルを渡すとJFileChooser
、そのディレクトリに自分自身を配置しようとします (存在する場合)。
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();
}
残念ながら、setFileName
UIインターフェースには含まれていないため、動的に呼び出す必要があります。Macでのみテストされています。
それでもうまくいかない場合は、次の回避策があります。
dialog.getUI().setFileName( name )
ただし、選択モードがFILES_ONLY
またはであるかどうかを確認する必要がありますFILES_AND_DIRECTORIES
。の場合DIRECTORIES_ONLY
、setSelectedFile()
ファイル名が削除されます。