当前位置: 首页 > 知识库问答 >
问题:

KeyEventDispatcher-如何将操作键事件与Unicode事件分离

夏谦
2023-03-14

我正在实现一个KeyEventDispatcher。dispatchKeyEvent()将所有键盘操作传递给外部(Android)设备。将KeyEvents轻松转换为设备提供的协议的一个关键问题是将事件分为两种类型:Unicode事件和“动作事件”(杂项、编辑、导航键-F1、Del、箭头等)。

Java非常方便地告诉用户击键生成的Unicode字符:您只需检查是否(KeyEvent)e.getID()==KeyEvent。键入的KEY_,并且保证生成的字符为e.getKeyChar()。无需处理修改键、键保持等。

问题始于其他类型的键输入事件,即那些不产生KEY_TYPED事件的键输入事件。正如Oracle为KeyEvent留档所述:“不产生Unicode字符的键组合,如F1和HELP键等操作键,不会产生KEY_TYPED事件”。

我需要能够以两种方式处理这些事件:

我能做到这两个吗?怎样

共有1个答案

长孙骏
2023-03-14

好吧,那毕竟很容易。

如果我只知道有一个KeyEvent.isActionKey()之前...

还没有测试所有可能的情况,但它似乎和我预期的一样。

 类似资料:
  • 我正在尝试制作一个程序,输出一个按键事件作为对另一个键盘事件的响应。如何让它使用条件语句中按下的键的特定值?我尝试的代码似乎完全跳过了条件语句。 最初尝试了然后厌倦了。还尝试了将[key]分配给变量的各种方法。还尝试了[print('2')]而不是使用。尝试将代码放在on_press(key)和on_release(key)中。 ` ` 每当我按下键盘上的“1”时,预计会输出“2”(除了按键和按键

  • 主要内容:实例在JSF中,我们可以处理如或组件的用户点击事件。要注册事件处理程序,我们可以在UI组件的属性中传递托管bean方法的名称。 或者也可以选择实现接口,并将实现类名称传递给UI 组件的属性。 以下代码显示了如何从向属性添加用户定义的方法。 使用上述方法 以下代码显示了如何实现并使用标签。 使用侦听器方法 - 实例 打开NetBeans,创建一个名称为:Actionlistener 的Web项目,其结构

  • 我正在使用Microsoft Visual C#2010 Express编写一个窗口窗体应用程序。我在写一个数独程序。我以前写过一次这个程序,并让它工作。由于硬盘故障,我丢失了源代码。我在表格上画了一个网格。我让鼠标事件工作了。我有重要的新闻活动要办。然后我在表单中添加了几个按钮,并让它们工作。但随后出现了一个问题。在我添加按钮并使其工作后,按键事件停止工作。为什么按钮事件和按键事件之间会发生冲突

  • 我有一个按钮,可以设置一个动作,比如 如何从该按钮中删除此EventFilter?我尝试了方法,但应该是什么参数?

  • 问题内容: 在人们的帮助下,我能够获得以下简单的GUI倒数的工作代码(它仅显示一个倒数秒的窗口)。我的这段代码的主要问题是东西。 据我了解,它将任务发送到事件分发线程(EDT),然后EDT在“可以”时执行该任务(无论如何)。 那正确吗? 据我了解,代码的工作方式如下: 在方法中,我们用来显示窗口(方法)。换句话说,显示窗口的代码将在EDT中执行。 在该方法中,我们还启动,计数器(通过构造)在另一个

  • 基本上,我有一个 顶部需要不时地改变颜色(不到一秒),比如说,他们需要在底部拍摄投射物。底部的需要绕x轴移动,这样才能阻挡镜头。 我的问题是,当我激活或上的任何线程,以便他们可以拍摄投射物并更改颜色时,我的EDT被阻止,因此我无法移动(事件不起作用)。我的意思是它们可以工作,但与此同时,回到原始位置。(EDT被阻止) 我的问题是,我如何将(顶部标签)上的操作与(底部标签)上的操作分开? 如何使发挥