在JList中按字母停用选择

时间:2015-12-13 13:46:33

标签: java swing key-bindings

我有一个JList列表和以下代码行:

list.getInputMap().put(KeyStroke.getKeyStroke('d'), "action");

因此,当我的列表处于焦点位置并按下键盘上的 d 键时,应执行操作。该操作考虑了当前选择了我的JList的哪个项目。问题是,只要我的列表中有一个带有第一个字母' d'我的选择将首先跳转到该条目,然后执行操作(应用于错误的项目)。

所以我的问题是:如何通过键入字母来禁用JLists中的选择跳转?

1 个答案:

答案 0 :(得分:1)

您可以从JList中删除KeyListeners 我尝试过,但无法弄清楚它在标准功能方面的缺陷。

KeyListener[] lsnrs = list.getKeyListeners();
for (int i = 0; i < lsnrs.length; i++) {
    list.removeKeyListener(lsnrs[i]);
}