首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KeyEvent字符

KeyEvent字符
EN

Stack Overflow用户
提问于 2012-02-27 22:57:05
回答 2查看 8.5K关注 0票数 6

我有一个关于KeyListener的问题。当我得到KeyEvent并做一个getKeyChar()时,我想和*进行比较,我打算使用一个KeyEvent.VK_定义,它适用于很多键。

但是对于这个特定的键和其他一些键,值并不匹配。

* getKeyChar()将返回0x2agetKeyCode()将返回0x380x38的定义是VK_8,而不是VK_ASTERISK,后者是0x97

为什么某些键码匹配,而其他键码不匹配。大多数人都这样认为。如果我只是做一个字符比较,工作( == '*'),但我不确定这是否是最好的解决方案?

感谢大家的帮助!

EN

回答 2

Stack Overflow用户

发布于 2012-02-27 23:03:06

JComponent的依赖

如果要根据JTextComponent确定,则使用DocumentListener;如果要修改Char序列,则使用DocumentFilter

否则,请看KeyBindings,因为KeyListener是为AWT Components指定的

票数 2
EN

Stack Overflow用户

发布于 2012-02-27 23:16:25

  1. KeyEvent.VK_ASTERISK是为标有*的(虚拟)键盘键保留的常量。它不必与某人按下键时产生的字符相匹配。

如果要使用VK常量,则必须侦听key up和key down事件,并使用KeyEvent.getKeyCode()方法。如果要使用字符,则必须侦听键入键的事件并使用KeyEvent.getKeyChar()方法。

一些关键代码可能会匹配字符,因为这样更容易定义它;并不是真的需要这样做。

  • 你说你从getKeyCode得到了一个输入星号的VK_8。您是按了实际的星号键还是必须键入Shift-8?
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9467109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档