---
category: swing
folder: FileHidingEnabled
title: JFileChooserでの隠しファイルの非表示設定を変更する
tags: [JFileChooser, JPopupMenu]
author: aterai
pubdate: 2014-03-17T00:01:02+09:00
description: JFileChooserで隠しファイルを表示するかどうかをポップアップメニューから切り替えます。
image: https://lh4.googleusercontent.com/-TSMPljQ02Ao/UyWixahVFzI/AAAAAAAACBw/n_Ctee0FJGQ/s800/FileHidingEnabled.png
---
* 概要 [#summary]
`JFileChooser`で隠しファイルを表示するかどうかをポップアップメニューから切り替えます。

#download(https://lh4.googleusercontent.com/-TSMPljQ02Ao/UyWixahVFzI/AAAAAAAACBw/n_Ctee0FJGQ/s800/FileHidingEnabled.png)

* サンプルコード [#sourcecode]
#code(link){{
chooser = new JFileChooser();
JPopupMenu pop = searchPopupMenu(chooser);
pop.addSeparator();
JCheckBoxMenuItem mi = new JCheckBoxMenuItem(new AbstractAction("isFileHidingEnabled") {
  @Override public void actionPerformed(ActionEvent e) {
    chooser.setFileHidingEnabled(((JCheckBoxMenuItem) e.getSource()).isSelected());
  }
});
mi.setSelected(chooser.isFileHidingEnabled());
pop.add(mi);
}}

* 解説 [#explanation]
上記のサンプルでは、`JFileChooser#setFileHidingEnabled(boolean)`メソッドを使用して、隠しファイル、隠しフォルダーなどの表示・非表示を設定しています。

- `JFileChooser`のファイルリストで使用される`JPopupMenu`を直接参照する方法はないので`JFileChooser`以下の子コンポーネントを検索して`JPopupMenu`を取得する必要がある
-- 参考: [[Containerの子Componentを再帰的にすべて取得する>Swing/GetComponentsRecursively]]
-- [[Containerの子Componentを再帰的にすべて取得する>Swing/GetComponentsRecursively]]
- 初期値は`OS`の設定(`Windows`なら「コントロールパネル、フォルダーオプション、表示、ファイルとフォルダーの表示」)に従う
-- 参考: [[DesktopPropertyの変更を監視する>Swing/DesktopProperty]]
-- [[DesktopPropertyの変更を監視する>Swing/DesktopProperty]]
#code{{
Object showHiddenProperty = Toolkit.getDefaultToolkit().getDesktopProperty("awt.file.showHiddenFiles");
System.out.println("awt.file.showHiddenFiles: " + showHiddenProperty);
}}

* 参考リンク [#reference]
- [http://crocro.com/news/20110706140746.html クロノス・クラウン - 「JFileChooser」のコンテキストメニューに独自メニューを追加する方法]
- [[DesktopPropertyの変更を監視する>Swing/DesktopProperty]]
- [[Containerの子Componentを再帰的にすべて取得する>Swing/GetComponentsRecursively]]

* コメント [#comment]
#comment
#comment