Swing/ComboBoxNoActionOnKeyNavigation のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/ComboBoxNoActionOnKeyNavigation へ行く。
- 1 (2022-05-30 (月) 00:28:33)
- category: swing
folder: ComboBoxNoActionOnKeyNavigation
title: JComboBoxのドロップダウンリストでカーソルキーナビゲーションを無効にする
tags: [JComboBox]
author: aterai
pubdate: 2022-05-30T00:27:33+09:00
description: JComboBoxのドロップダウンリストでアイテム選択状態がカーソルキー入力で変化しても
JComboBox
本体のアイテム表示を変更しないよう設定します。 image: https://drive.google.com/uc?id=1dObku__RdVH8sTpYyBpbGRWFwumlZBmU
概要
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の動作をテストする