Swing/FileHidingEnabled のバックアップの現在との差分(No.2)
- category: swing folder: FileHidingEnabled title: JFileChooserでの隠しファイルの非表示設定を変更する tags: [JFileChooser, JPopupMenu] author: aterai pubdate: 2014-03-17T00:01:02+09:00 description: JFileChooserで隠しファイルを表示するかどうかをポップアップメニューから切り替えます。 image:
概要
概要
JFileChooser
で隠しファイルを表示するかどうかをポップアップメニューから切り替えます。
Screenshot
Advertisement
サンプルコード
サンプルコード
chooser = new JFileChooser();
JPopupMenu pop = searchPopupMenu(chooser);
pop.addSeparator();
#spandel
JCheckBoxMenuItem mi = new JCheckBoxMenuItem(
#spanend
new AbstractAction("isFileHidingEnabled") {
#spanadd
JCheckBoxMenuItem mi = new JCheckBoxMenuItem(new AbstractAction("isFileHidingEnabled") {
#spanend
@Override public void actionPerformed(ActionEvent e) {
chooser.setFileHidingEnabled(
((JCheckBoxMenuItem) e.getSource()).isSelected());
chooser.setFileHidingEnabled(((JCheckBoxMenuItem) e.getSource()).isSelected());
}
});
mi.setSelected(chooser.isFileHidingEnabled());
pop.add(mi);
View in GitHub: Java, Kotlin解説
解説
上記のサンプルでは、JFileChooser#setFileHidingEnabled(boolean)
メソッドを使用して、隠しファイル、隠しフォルダーなどの表示・非表示を設定しています。
- -
- 初期値は、
OS
の設定(Windows
なら「コントロールパネル、フォルダーオプション、表示、ファイルとフォルダーの表示」)に従う
-
JFileChooser
のファイルリストで使用されるJPopupMenu
を直接参照する方法はないのでJFileChooser
以下の子コンポーネントを検索してJPopupMenu
を取得する必要がある - 初期値は
OS
の設定(Windows
なら「コントロールパネル、フォルダーオプション、表示、ファイルとフォルダーの表示」)に従う- DesktopPropertyの変更を監視する
Object showHiddenProperty = Toolkit.getDefaultToolkit().getDesktopProperty("awt.file.showHiddenFiles"); System.out.println("awt.file.showHiddenFiles: " + showHiddenProperty);
- DesktopPropertyの変更を監視する
- -
JFileChooser
からJPopupMenu
を直接取得することが出来ないので、以下のように子コンポーネントを検索しています。
#spanend
#spandel
private static JPopupMenu searchPopupMenu(Container parent) {
#spanend
for (Component c: parent.getComponents()) {
if (c instanceof JComponent && ((JComponent) c).getComponentPopupMenu() != null) {
return ((JComponent) c).getComponentPopupMenu();
} else {
JPopupMenu pop = searchPopupMenu((Container) c);
if (pop != null) {
return pop;
}
}
}
return null;
#spandel
}
#spanend
#spandel
参考リンク
参考リンク
- クロノス・クラウン - 「JFileChooser」のコンテキストメニューに独自メニューを追加する方法
- DesktopPropertyの変更を監視する
- Containerの子Componentを再帰的にすべて取得する