概要

JFileChooserで隠しファイルを表示するかどうかをポップアップメニューから切り替えます。

サンプルコード

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);
View in GitHub: Java, Kotlin

解説

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

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

参考リンク

コメント