JComboBoxのドロップダウンリストを上矢印キーでも開くよう設定する
Total: 2200
, Today: 2
, Yesterday: 0
Posted by aterai at
Last-modified:
概要
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
の選択値をマウスホイールで変更できない
- JComboBoxの上下矢印キーによる選択移動アクションを変更する