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

将全局键监听器附加到几个按钮

冯峻
2023-03-14
        btn.getScene().setOnKeyPressed((KeyEvent e) -> {
            if (e.getText().equals(hotkey)) {
                btn.arm();
                btn.fire();
            }
        });
        btn.getScene().setOnKeyReleased((KeyEvent e) -> {
            if (e.getText().equals(hotkey)) {
                btn.disarm();
            }
        });

立即想到的解决方案是创建一个跟踪所有热键的arraylist,并让keylistener每次迭代它,以及另一个带有关联按钮的arraylist的arraylist。

有没有更优雅、更直接的方法?

共有1个答案

应志用
2023-03-14

使用两个数组列表来跟踪热键和相关按钮最终会导致一个复杂的解决方案,您必须实现一种方法来关联热键和按钮。

基于此,听起来使用地图可以解决问题。将特定热键映射到关联按钮的键值对。

查看Map上的java文档,了解所有的方法:

 类似资料:
  • 问题内容: 我有一个带有许多按钮的程序,所有这些按钮都将执行相同的功能。我想知道是否有一种方法可以将单个侦听器附加到程序中所有现有的JButton。 问题答案: 就像是: 该会从事件使其知道哪个按钮被点击获取源对象。 如果您需要在Action中使用if / else逻辑,那么您应该创建一个单独的Action。如果代码不属于某个动作,请勿将其强制执行。

  • 我有一个有许多按钮的程序,所有这些按钮都将执行相同的功能。我想知道是否有办法将一个侦听器附加到程序中所有现有的JButton。

  • 问题内容: 我想将鼠标悬停在我创建的SpanElement的侦听器上: 我在Google中找到了如何使用Label-wrapper做到这一点,但我想在没有任何包装的情况下做到这一点。可能吗? 谢谢。 问题答案: 也可以不使用JSNI。 因此,与您的元素: 将事件侦听器直接添加到元素: …而且看起来确实很丑陋;)正如您所注意到的那样,对于此元素构想的所有dom事件,事件侦听器都是“公共的”。因此,为

  • 本文向大家介绍vue 全局封装loading加载教程(全局监听),包括了vue 全局封装loading加载教程(全局监听)的使用技巧和注意事项,需要的朋友参考一下 前言: 为了页面美观,请求接口的时候延迟没有数据,页面感觉狠卡顿,封装loading,请求接口成功后隐藏掉(我这是用的vant 组件根据自己情况进行改变)。 第一步: 建立loading.vue 第二步: app.vue引入 增加开关

  • 本节,我们将为图像附加事件监听器。在使用Events类时,我们只能为路径附加事件监听器,而画布上绘制的图像不属于路径的范畴,我们可以创建一个覆盖在图像上矩形区域,以便能为这个矩形区域附加事件,其结果就是为图像附加事件监听器。 图6-4 为图像添加事件监听器 操作步骤 按照以下步骤,绘制两个不同图像,并为它们附加mouseover, mouseout, mousedown, 和mouseup事件监听

  • 问题内容: 我需要在python终端程序中监听某些按键,而不必使用暂停执行。我已经看到人们使用一些特定于Windows的方式来监听按键,并且我看到人们使用了诸如tkinter和pygame之类的大型模块,这些模块我想避免。 是否有一个轻量级的模块可以跨平台运行(至少是ubuntu,windows,mac)?还是有一种方法可以只使用来自tkinter,pygame等的事件系统? 如果没有,我应该如何