概要
JComboBox
のドロップダウンリストでアイテム選択状態がカーソルキー入力で変化してもJComboBox
本体のアイテム表示を変更しないよう設定します。
Screenshot
Advertisement
サンプルコード
String key1 = "ComboBox.noActionOnKeyNavigation";
JCheckBox check1 = new JCheckBox(key1, UIManager.getBoolean(key1));
check1.addActionListener(e -> {
JCheckBox c1 = (JCheckBox) e.getSource();
UIManager.put(key1, c1.isSelected());
});
String key2 = "ComboBox.isEnterSelectablePopup";
JCheckBox check2 = new JCheckBox(key2, UIManager.getBoolean(key2));
check2.addActionListener(e -> {
JCheckBox c2 = (JCheckBox) e.getSource();
UIManager.put(key2, c2.isSelected());
});
JComboBox<String> combo1 = new JComboBox<>(makeModel());
combo1.setEditable(false);
JComboBox<String> combo2 = new JComboBox<>(makeModel());
combo2.setEditable(true);
View in GitHub: Java, Kotlin解説
ComboBox.noActionOnKeyNavigation
false
: デフォルトJComboBox
のドロップダウンリストの選択状態がカーソルキー入力で変更されるとJComboBox
本体のアイテム表示が変化する
true
:JComboBox
のドロップダウンリストの選択状態がカーソルキー入力で変更されてもJComboBox
本体のアイテム表示は変化しない- カーソルキー入力によるスクロールは可能
- 編集不可の
JComboBox
のドロップダウンリストで先頭文字のキー入力によって選択状態が変更された場合はJComboBox
本体のアイテム表示も変更される(ComboBox.noActionOnKeyNavigation
に依存しない) JComboBox
のドロップダウンリストでEnterキーが入力されたて選択状態が変更された場合はJComboBox
本体のアイテム表示も変更される
ComboBox.isEnterSelectablePopup
ComboBox.noActionOnKeyNavigation
がtrue
の場合、ComboBox.isEnterSelectablePopup
の設定は無視される- JComboBoxのポップアップメニューでEnterキーが入力された場合のActionListenerの動作をテストする