2

我正在尝试制作一个使用 tab 键做某事的应用程序。我已经实现了 KeyListener 接口,并且能够对所有其他键进行编程。但是当我按下 Tab 键并在 keyPressed() 方法中我输入了这个:

System.out.println(ke.getKeyCode());

我没有输出。“Tab”键是唯一没有输出的键。所有其他键都打印了它们的相关键码。为什么是这样?

4

1 回答 1

2

setFocusTraversalKeysEnabled(false)在您收听的控件上使用(JTextField?)。

编辑: Tab 键通常用于在 UI 控件之间切换输入焦点,以便在不需要鼠标的情况下更轻松地进行键盘输入。当 UI 控件接收到按键事件时,它首先会尝试自行“使用”它,如果该键是特殊键(Tab、Shift-Tab 等),则控件会使用该事件并且不会传播它进一步。另一方面,如果键不是“特殊”键,它会将事件传播到附加的侦听器(如果有)。调用setFocusTraversalKeysEnabled(false)会禁用控件的此内置行为(但在本例中仅针对 FocusTraversal,即 Tab 和 Shift+Tab),以便将事件传播到侦听器。

于 2013-08-17T14:01:38.253 回答