如何实现关键监听器?

Posted

技术标签:

【中文标题】如何实现关键监听器?【英文标题】:How to implement key listener? 【发布时间】:2019-04-01 04:25:09 【问题描述】:

出于教育目的,我正在用 Java 构建一个 MIDI 钢琴小程序。为此,我想:

    捕获按键的按下和释放 计算同一键按下和释放之间的时间。

实现满足上述条件的关键侦听器的最佳方法是什么?

只有两个按键监听器(用于按键按下和释放)还是每个按键都有按键监听器?

【问题讨论】:

嗯.. 这个帖子怎么样? ***.com/questions/18037576/… 【参考方案1】:

只有两个按键监听器(用于按键按下和释放)还是每个按键都有按键监听器?

两者都没有。我认为您需要一个侦听器来处理按键和按键释放事件……对于所有按键。每个事件都包含一个 when 属性,您可以使用该属性来计算按键被按住的时间。

最后,请注意,小程序现在是不推荐使用的技术,因此这样做的教育价值是有限的,您编写的代码的实用价值也是如此。大多数浏览器不久前删除了所有 Java 插件/小程序支持。

https://www.theregister.co.uk/2016/08/24/oracle_reveals_java_applet_api_deprecation_plan/

【讨论】:

Applet 类的 init() 函数内部 addKeyListner(new KeyAdapter() @Override public void keyTyped(KeyEvent e) System.out.println("Time: "+e.getWhen() ); System.out.println(e.getKeyText(e.getKeyCode())); );`但是当我按住一个键时,它似乎生成了多个按键,而不是维持一个按键。 它们是关键事件而不是击键。您需要在侦听器代码中过滤它们。

以上是关于如何实现关键监听器?的主要内容,如果未能解决你的问题,请参考以下文章

JS如何实现方法监听?

如何使用 Swift 协议功能,如 Android 接口监听器实现?

什么是Java的接口,如何运用接口实现事件监听

如何实现一个 Firebase 监听器来观察数据库的实时变化

由路由器连接的电脑如何socket实现网络通信

ios监听锁屏解锁如何实现,需要调用啥方法?