【发布时间】:2015-12-13 13:46:33
【问题描述】:
我有一个 JList 列表和以下代码行:
list.getInputMap().put(KeyStroke.getKeyStroke('d'), "action");
因此,当我的列表处于焦点位置并且我按下键盘上的 d 键时,应该执行一个操作。该操作考虑了当前选择了我的 JList 的哪个项目。问题是,每当我的列表中有第一个字母为“d”的项目时,我的选择将首先跳转到该条目,然后执行操作(应用于错误的项目)。
所以我的问题是:如何禁用 JLists 中由输入字母引起的选择跳转?
【问题讨论】:
-
一个愚蠢的想法 - 你有没有试过在你的项目名称前面放一个不可见的空格?
-
@pvg 我刚刚尝试过,它可以工作;)。但这不是我想要解决问题的方式。现在我在为空格键分配动作时遇到了问题;)。或者你所说的无形空间是什么意思?我只是拿了一个普通的。
-
不,尝试一个不可见的 unicode 空间,而不是一个实际的空间。我认为这实际上是一个相当不错的解决方案,不会过多地挖掘 JList 的默认和相当具体的实现细节。
-
@principal-ideal-domain 你必须覆盖,通过返回禁用
JList#getNextMatch-return -1;
标签: java swing key-bindings