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();
}
残念ながら、setFileNameUIインターフェースには含まれていないため、動的に呼び出す必要があります。Macでのみテストされています。
それでもうまくいかない場合は、次の回避策があります。
dialog.getUI().setFileName( name )
ただし、選択モードがFILES_ONLYまたはであるかどうかを確認する必要がありますFILES_AND_DIRECTORIES。の場合DIRECTORIES_ONLY、setSelectedFile()ファイル名が削除されます。