如何将监听器添加到JTextField中向上,向下,向右箭头?
问题描述:
我需要为我的JTextField编写一个箭头监听器。如果与一试:如何将监听器添加到JTextField中向上,向下,向右箭头?
public void keyTyped(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
......
}
}
...
这是不好的(我认为的JTextField不响应一个特殊的按键侦听器)
答
我知道上面给出将工作接受的答案,但是这是不是应该在Swing做的方式。 KeyListeners通常只应用于AWT应用程序,因为它们不支持更抽象的API。
使用Swing时,你应该使用Key Bindings。所有Swing组件都使用Key Bindings。 Key Bindings博客文章提供了一些关于如何使用它们的基础知识,并包含有关“如何使用关键绑定”的Swing教程的链接以获取更多详细信息。
答
你必须使用的keyPressed或这里调用keyReleased。 引用SUN的API javadoc:
“按键类型”事件是较高级的,并且通常不依赖于平台或键盘布局。当输入一个Unicode字符时会生成这些字符
因此,keyTyped方法不会针对箭头键调用,因为它们不会生成Unicode字符。
答
您可以通过addKeyListener
方法添加您自己的KeyListener
为每个java.awt.Component
提供的方法。在您的听众中,使用keyPressed
。
箭头键是操作键,可以通过isActionKey
确认此事件:
返回true如果键触发事件是一个操作键。 操作键的示例包括剪切,复制,粘贴,上一页,大写锁定,箭头和功能键。 此信息仅适用于按键和键释放事件。
参见:http://java.sun.com/docs/books/tutorial/uiswing/events/keylistener.html
谢谢。这是工作:) – artaxerxe 2009-12-16 13:38:52