java - 如何收听在 Java 中按下/键入的 TAB 键?

标签 java focus traversal keylistener keyevent

    private void jTextField1KeyPressed(java.awt.event.KeyEvent evt)
    {
        //cant capture my TAB?
        System.out.print(evt.getKeyChar());

    }

在不使用焦点监听技术的情况下,在 java gui 中捕获 tab 键的最简单方法是什么?

最佳答案

VK_TAB 是制表符常量。

但是:键事件监听器不会接收到 Tab 键按下或键释放事件。这是因为焦点子系统会消耗焦点遍历键,例如 Tab 和 Shift Tab。

见:http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

要解决这个问题,请将以下内容应用于触发键事件的组件(例如,TextArea):

.setFocusTraversalKeysEnabled(false)

使用此方法,您必须显式处理焦点遍历。或者,KeyEventDispatcher类可用于预听所有关键事件。

关于java - 如何收听在 Java 中按下/键入的 TAB 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275204/

相关文章:

java - 如何在 Java 的嵌套 for 循环中用字母递增值?

java - 更改 HTML 对话框的样式 (CSS)

c++ - 无限循环的原因? (迭代中序遍历实现)C++

jquery - 聚焦小图像时出现奇怪的轮廓

javascript - 如何更改输入值onfocus和onblur(无jquery)

c++:将函数作为参数传递给另一个函数

algorithm - 列表中非重复元素的最小值,线性时间

java - 在 ListView 中不显示任何项目

java - 如何在 Velocity 2.0 中转义双引号?

CSS General sibling 不适用于 :focus?