Swing/FileChooserListViewWindowsStyle のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/FileChooserListViewWindowsStyle へ行く。
- 1 (2023-05-15 (月) 01:39:02)
- 2 (2023-05-16 (火) 18:42:22)
- 3 (2024-11-20 (水) 11:16:40)
- category: swing folder: FileChooserListViewWindowsStyle title: JFileChooserのファイル一覧で選択状態をWindowsスタイルに設定する tags: [FileChooser, UIManager, WindowsLookAndFeel] author: aterai pubdate: 2023-05-15T01:33:15+09:00 description: JFileChooserのファイル一覧でファイルの選択状態やポップアップメニューのセパレータなどをWindows風の表示に変更します。 image: https://drive.google.com/uc?id=1h9w0k8twLfHOwzNGtvXLIWL5SP75W68w
概要
JFileChooser
のファイル一覧でファイルの選択状態やポップアップメニューのセパレータなどをWindows
風の表示に変更します。
Screenshot
Advertisement
サンプルコード
String key = "FileChooser.listViewWindowsStyle";
JCheckBox check = new JCheckBox("listViewWindowsStyle") {
@Override public void updateUI() {
super.updateUI();
boolean b = UIManager.getLookAndFeelDefaults().getBoolean(key);
setSelected(b);
}
};
JButton button = new JButton("show");
button.addActionListener(e -> {
boolean b = check.isSelected();
UIManager.put(key, b);
JFileChooser fileChooser = new JFileChooser();
int retValue = fileChooser.showOpenDialog(getRootPane());
if (retValue == JFileChooser.APPROVE_OPTION) {
log.setText(fileChooser.getSelectedFile().getAbsolutePath());
}
});
View in GitHub: Java, Kotlin解説
FileChooser.listViewWindowsStyle
:Boolean.TRUE
- スクリーンショット下
WindowsLookAndFeel
でのデフォルトで、JFileChooser
のファイル一覧の選択状態などを以下のようなWindows
スタイル?で表示するWindowsLookAndFeel
以外でもUIManager.put("FileChooser.listViewWindowsStyle", Boolean.TRUE)
を設定するとWindows
スタイルでの表示が可能になる
JList
を使用したListView
、JTable
を使用したDetailsView
でファイルなどを選択し、右クリックなどでポップアップメニューを開くと選択状態の表示がクリアされる- デフォルト?の
Windows 10
のファイル選択ダイアログでは右クリックでポップアップメニューを開いてもファイル選択状態は維持されるので、上記の動作が意図したものかバグなのかは分からない UIManager.put("FileView.fullRowSelection", Boolean.TRUE)
が設定されてJTable
を使用したDetailsView
の一行選択が有効になっている場合は、選択状態の表示がクリアが無効になる- JFileChooserのDetails Viewで行全体を選択可能にする
- デフォルト?の
- ポップアップメニューにセパレータが追加される
FileChooser.listViewWindowsStyle
:Boolean.FALSE
- スクリーンショット上
WindowsLookAndFeel
以外でのデフォルトJList
を使用したListView
、JTable
を使用したDetailsView
でファイルなどを選択し、右クリックなどでポップアップメニューを開いても選択状態の表示が保持される- ポップアップメニューのセパレーターが非表示になる