java - KeyListener 的调用顺序是否有保证?

标签 java awt keylistener

我可能在 addKeyListener 的文档中遗漏了一些明显的内容, removeKeyListener , getKeyListeners或相关教程,但是对于添加的关键监听器的运行顺序有任何保证吗?我希望它们按照添加的顺序运行,但我没有看到在任何地方指定了这一点。

我遇到的情况是,我需要向现有的组件添加一个键监听器,并覆盖特定键的现有键监听器。似乎应该能够通过以下方式做到这一点:

  • 使用 getKeyListeners 查找所有现有的按键监听器。
  • 使用 removeKeyListener 删除每个现有的键监听器
  • 使用 addKeyListener 添加我的 key 监听器。 (这只处理选定的按键,并在发生时消耗事件。)
  • 最后使用 addKeyListener 添加回第一步中找到的所有关键监听器。

但是,如果事实证明它无法在特定 JVM 等上运行,我不想这样做。

最佳答案

不太明白你的情况。对我来说,依靠调用监听器的顺序似乎有点狡猾。

您能不能只创建一个关键监听器包装类来检测事件何时发生,并在适当的情况下将事件委托(delegate)给包装的监听器类?

我认为有更好的方法可以实现您想要实现的目标,而不依赖于监听器排序,除非我误解了某些内容!

关于java - KeyListener 的调用顺序是否有保证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5274172/

相关文章:

java - 如何恢复到上次 Activity ?

java - 数组索引越界异常错误

java - 如何在 Tomcat 中获取 org.apache.catalina.connector.Request 对象?

java - 如何监听TrayIcon消息的点击

java - 创建具有不同颜色的颜色数组

java - 如何在Java中捕获Enter键并将事件更改为Tab

java - 捕获 ENTER 键事件并改为单击

java - 更有效的 KeyListener 实现

java - 跨应用程序的自定义导航栏

java - 构造resultMap为同一个集合创建不同的实例