在 JList 中按字母停用选择
Deactivate selection by letter in JList
我有一个 JList 列表和以下代码行:
list.getInputMap().put(KeyStroke.getKeyStroke('d'), "action");
因此,当我的列表处于焦点状态并且我按下键盘上的 d 键时,应该执行一个操作。该操作考虑了当前选择了我的 JList 的哪个项目。问题是每当我的列表中有第一个字母 'd' 的项目时,我的选择将首先跳转到该条目然后执行操作(应用于错误的项目)。
所以我的问题是:如何禁用 JLists 中因输入字母而导致的选择跳转?
您可以从 JList 中删除 KeyListeners。
我试过了,但无法弄清楚这在标准功能方面有什么问题。
KeyListener[] lsnrs = list.getKeyListeners();
for (int i = 0; i < lsnrs.length; i++) {
list.removeKeyListener(lsnrs[i]);
}
我有一个 JList 列表和以下代码行:
list.getInputMap().put(KeyStroke.getKeyStroke('d'), "action");
因此,当我的列表处于焦点状态并且我按下键盘上的 d 键时,应该执行一个操作。该操作考虑了当前选择了我的 JList 的哪个项目。问题是每当我的列表中有第一个字母 'd' 的项目时,我的选择将首先跳转到该条目然后执行操作(应用于错误的项目)。
所以我的问题是:如何禁用 JLists 中因输入字母而导致的选择跳转?
您可以从 JList 中删除 KeyListeners。
我试过了,但无法弄清楚这在标准功能方面有什么问题。
KeyListener[] lsnrs = list.getKeyListeners();
for (int i = 0; i < lsnrs.length; i++) {
list.removeKeyListener(lsnrs[i]);
}