Swing/ShowPopupOnNavigation のバックアップ(No.8)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/ShowPopupOnNavigation へ行く。
- 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
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);
View in GitHub: Java, KotlinExplanation
ComboBox.showPopupOnNavigation:false- デフォルト
JComboBoxにフォーカスが存在する状態で上矢印キー↑を入力してもドロップダウンリストは開かない- 下矢印キー↓を入力すれば
ComboBox.showPopupOnNavigationに無関係にドロップダウンリストが開く
ComboBox.showPopupOnNavigation:trueJComboBoxにフォーカスが存在する状態で上矢印キー↑を入力すると下矢印キー↓と同様にドロップダウンリストが開く
selectPreviousComboBox.showPopupOnNavigationの設定はselectPreviousアクション内でのみ使用されるため、MetalLookAndFeelやMotifLookAndFeelでのみ有効
selectPrevious2ComboBox.showPopupOnNavigationの設定はselectPrevious2アクションでは参照されないため、WindowsLookAndFeelやNimbusLookAndFeelでは無効selectPrevious2アクションではJComboBoxが編集不可の場合は上矢印キーでドロップダウンリストは開かず選択アイテムが移動する- 編集不可の
JComboBoxでドロップダウンリストをキー入力で開く場合はF4、Alt+↑キーなどを使用する
- 編集不可の
selectPrevious2アクションではJComboBoxが編集可能の場合は上矢印キーでドロップダウンリストが開き選択アイテムは移動しない- ドロップダウンリストが開いた状態で上矢印キーを入力すると選択アイテムが移動する
selectNext2selectNext2アクションではJComboBoxが編集不可の場合は下矢印キーでドロップダウンリストは開かず選択アイテムが移動する- 編集不可の
JComboBoxでドロップダウンリストをキー入力で開く場合はF4、Alt+↓キーなどを使用する
- 編集不可の
selectNext2アクションではJComboBoxが編集可能、またはJTableのセルエディタになっている場合は下矢印キーでドロップダウンリストが開く
Reference
- JComboBoxのItem選択をループ
- JComboBoxの値をMouseWheelで変更
Windows 10などのデフォルトではマウスホイールでも上下矢印キーと同様の動きをするが、WindowsLookAndFeelのデフォルトではJComboBoxの選択値をマウスホイールで変更できない
- JComboBoxの上下矢印キーによる選択移動アクションを変更する