【问题标题】:Java KeyListener: Is the "Backspace" key pressed in KeyTypedJava KeyListener:KeyTyped 中是否按下了“Backspace”键
【发布时间】:2013-03-28 22:58:08
【问题描述】:

如何判断用户是否从 KeyTyped 方法内部按下了“Backspace”键?它们的值来自arg0.getKeyChar() 不是KeyEvent.CHAR_UNDEFINEDarg0.getKeyCode()KeyEvent.VK_UNDEFINED,因为它始终位于 KeyTyped 方法的内部。我是否必须使用 KeyReleased/KeyPressed 方法并标记布尔值?哪个方法先触发? KeyReleased 还是 KeyTyped?

【问题讨论】:

  • keyPressed 在按键被按下(向下)时触发 keyReleased 在按键被释放(向上)时触发 keyTyped 在用户将 Unicode 字符输入到监听组件后触发。跨度>
  • @Flot2011 那么 KeyReleased 是在 KeyTyped 之前吗?还是视情况而定?

标签: java keylistener backspace


【解决方案1】:

看起来 KeyTyped 无法检测到没有可视化表示的键。我假设这包括退格键。

KeyListener, keyPressed versus keyTyped

【讨论】:

  • 那么它在 getKeyChar() 中给出了什么?
  • 刚刚找到。当我将 arg0.getKeyChar() 转换为 int 时,我得到数字 8。这在其他计算机上是否相同? (对于 Enter 键,我得到 10,对于 ESC,我得到 27。这些值是否标准化?)
  • 我相信退格确实有正确的 unicode 编码,所以 getKeyChar() 会报告这个
  • 所以退格有一个 unicode 字符,这是 getKeyChar() 报告的,但它不是“可打印的”,所以 getKeyCode() 给你未定义的。
  • 是的,但是如果您将 getKeyChar() 转换为 int,它将始终给出数字 8。谢谢。
猜你喜欢
  • 2013-03-19
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
  • 2011-08-01
  • 2012-11-12
相关资源
最近更新 更多