Swing/ShowPopupOnNavigation のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/ShowPopupOnNavigation へ行く。
- 1 (2021-04-05 (月) 00:07:03)
- 2 (2021-04-05 (月) 14:33:08)
- 3 (2024-06-24 (月) 00:37:08)
- category: swing folder: ShowPopupOnNavigation title: JComboBoxのドロップダウンリストを上矢印キーでも開くよう設定する tags: [JComboBox, LookAndFeel, InputMap] author: aterai pubdate: 2021-04-05T00:02:26+09:00 description: JComboBoxにフォーカスがある場合下矢印キーだけではなく上矢印キーでものドロップダウンリストを開くよう設定します。 image: https://drive.google.com/uc?id=1BL5XXUe_94Ivcqyzfx8mJbhRgpboDdpz
概要
JComboBox
にフォーカスがある場合下矢印キーだけではなく上矢印キーでものドロップダウンリストを開くよう設定します。
Screenshot
Advertisement
サンプルコード
private static final String SHOW_POPUP_NAVI = "ComboBox.showPopupOnNavigation";
JLabel help = new JLabel("This setting only responds to the upwards arrow key↑");
help.setAlignmentX(0f);
JCheckBox check = new JCheckBox(SHOW_POPUP_NAVI);
check.setFocusable(false);
check.addActionListener(e -> UIManager.put(SHOW_POPUP_NAVI, check.isSelected()));
JComboBox<String> combo = new JComboBox<String>(makeModel()) {
@Override public void updateUI() {
super.updateUI();
boolean flg = UIManager.getLookAndFeelDefaults().getBoolean(SHOW_POPUP_NAVI);
UIManager.put(SHOW_POPUP_NAVI, flg);
check.setSelected(flg);
}
};
combo.setSelectedIndex(5);
combo.setAlignmentX(0f);
View in GitHub: Java, Kotlin解説
ComboBox.showPopupOnNavigation
:false
- デフォルト
JComboBox
にフォーカスが存在する状態で上矢印キー↑を入力してもドロップダウンリストは開かない- 下矢印キー↓を入力すれば
ComboBox.showPopupOnNavigation
に無関係にドロップダウンリストが開く
ComboBox.showPopupOnNavigation
:true
JComboBox
にフォーカスが存在する状態で上矢印キー↑を入力すると下矢印キー↓と同様にドロップダウンリストが開く
selectPrevious
ComboBox.showPopupOnNavigation
の設定はselectPrevious
アクション内でのみ使用されるため、MetalLookAndFeel
やMotifLookAndFeel
でのみ有効
selectPrevious2
ComboBox.showPopupOnNavigation
の設定はselectPrevious2
アクションでは参照されないため、WindowsLookAndFeel
やNimbusLookAndFeel
では無効selectPrevious2
アクションではJComboBox
が編集不可の場合は上矢印キーでドロップダウンリストは開かず選択アイテムが移動する- 編集不可の
JComboBox
でドロップダウンリストをキー入力で開く場合はF4、Alt+↑キーなどを使用する
- 編集不可の
selectPrevious2
アクションではJComboBox
が編集可能の場合は上矢印キーでドロップダウンリストが開き選択アイテムは移動しない- ドロップダウンリストが開いた状態で上矢印キーを入力すると選択アイテムが移動する
selectNext2
selectNext2
アクションではJComboBox
が編集不可の場合は下矢印キーでドロップダウンリストは開かず選択アイテムが移動する- 編集不可の
JComboBox
でドロップダウンリストをキー入力で開く場合はF4、Alt+↓キーなどを使用する
- 編集不可の
selectNext2
アクションではJComboBox
が編集可能、またはJTable
のセルエディタになっている場合は下矢印キーでドロップダウンリストが開く
参考リンク
- JComboBoxのItem選択をループ
- JComboBoxの値をMouseWheelで変更
Windows 10
などのデフォルトではマウスホイールでも上下矢印キーと同様の動きをするが、WindowsLookAndFeel
のデフォルトではJComboBox
の選択値をマウスホイールで変更できない