Swing/FileChooserCurrentDirectory のバックアップ(No.12)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/FileChooserCurrentDirectory へ行く。
- 1 (2012-09-17 (月) 13:37:55)
- 2 (2012-12-07 (金) 16:11:57)
- 3 (2012-12-25 (火) 18:14:41)
- 4 (2014-08-11 (月) 19:50:06)
- 5 (2014-09-17 (水) 13:14:54)
- 6 (2014-10-21 (火) 01:54:54)
- 7 (2015-02-13 (金) 23:03:08)
- 8 (2015-09-28 (月) 15:03:45)
- 9 (2016-04-27 (水) 19:56:03)
- 10 (2017-07-19 (水) 21:00:33)
- 11 (2018-02-22 (木) 13:58:15)
- 12 (2020-03-03 (火) 17:56:25)
- 13 (2021-08-12 (木) 14:11:29)
- 14 (2022-08-20 (土) 22:15:25)
- category: swing folder: FileChooserCurrentDirectory title: JFileChooserを開いた時のカレントディレクトリを設定する tags: [JFileChooser] author: aterai pubdate: 2012-09-17T13:37:55+09:00 description: JFileChooserを開いた時のカレントディレクトリを設定します。 image:
概要
JFileChooser
を開いた時のカレントディレクトリを設定します。
Screenshot
Advertisement
サンプルコード
File f = new File(field.getText().trim());
JFileChooser fc = check1.isSelected() ? fc2 : fc0;
fc.setCurrentDirectory(f);
int retvalue = fc.showOpenDialog(p);
if (retvalue == JFileChooser.APPROVE_OPTION) {
log.setText(fc.getSelectedFile().getAbsolutePath());
}
View in GitHub: Java, Kotlin解説
JFileChooser.DIRECTORIES_ONLY
で、ディレクトリのみ表示する場合のカレントディレクトリの設定をテストします。
setCurrentDirectory
- JFileChooser#setCurrentDirectory(File)メソッドで
CurrentDirectory
を設定 - 参照: コンボボックスにディレクトリ名
- リストには、
CurrentDirectory
内のディレクトリ一覧 - フォルダ名: テキストフィールドは前回の文字列(
setCurrentDirectory
では変化しない) - 存在しないファイルを
setCurrentDirectory
で設定すると、前回のCurrentDirectory
(初回に存在しないファイルが設定された場合はOS
のデフォルト)が表示される- 上記のサンプルで、
Change !dir.exists() case
にチェックをした場合、前回のディレクトリではなく、参照可能な親ディレクトリを検索するよう、setCurrentDirectory
をオーバーライドしたJFileChooser
を使用するJFileChooser fc2 = new JFileChooser() { @Override public void setCurrentDirectory(File dir) { if (dir != null && !dir.exists()) { this.setCurrentDirectory(dir.getParentFile()); } super.setCurrentDirectory(dir); } };
- 上記のサンプルで、
- JFileChooser#setCurrentDirectory(File)メソッドで
setSelectedFile
- JFileChooser#setSelectedFile(File)メソッドで選択ファイルとしてディレクトリを設定
- 参照: コンボボックスには、選択ファイルとして設定したディレクトリの親ディレクトリ名
- リストには、親ディレクトリ内のディレクトリ一覧
Metal
やNimbus LookAndFeel
では、選択ファイルとして設定したディレクトリが選択状態になるMetal
などのLookAndFeel
でも、ディレクトリが選択状態にならない場合がある- 上記のサンプルで、
isParent reset?
にチェックをした場合、!fileChooser.getFileSystemView().isParent(fileChooser.getCurrentDirectory(), dir)==false
になるように?setSelectedFile
で選択ファイルをリセットする
- フォルダ名: テキストフィールドは選択ファイルとして設定したディレクトリ
- 存在しないディレクトリを
setSelectedFile
で設定するとその親ディレクトリ、親ディレクトリも存在しない場合は、OS
のデフォルトがカレントディレクトリとなる
- メモ
UIManager.getBoolean("FileChooser.usesSingleFilePane")
の動作が良く分からない...