JComboBoxのドロップダウンリストを上矢印キーでも開くよう設定する
Total: 2693, Today: 3, Yesterday: 1
Posted by aterai at 
Last-modified: 
Summary
JComboBoxにフォーカスがある場合下矢印キーだけではなく上矢印キーでもドロップダウンリストを開くよう設定します。
Screenshot

Advertisement
Source Code Examples
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);
Description
- 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のセルエディタになっている場合は下矢印キーでドロップダウンリストが開く
 
Reference
- JComboBoxのItem選択をループ
- JComboBoxの値をMouseWheelで変更
- Windows 10などのデフォルトではマウスホイールでも上下矢印キーと同様の動きをするが、- WindowsLookAndFeelのデフォルトでは- JComboBoxの選択値をマウスホイールで変更できない
 
- JComboBoxの上下矢印キーによる選択移動アクションを変更する