如果有焦点组件,则不会执行场景的 JavaFX 按键事件

2024-01-12

我有一段代码可以在按下某个键时执行某些功能:

scene.setOnKeyPressed(event -> {
    if (event.getCode() == KeyCode.F1) {
        doSomething();
    }
});

它可以工作,但前提是没有焦点组件,例如按钮或文本字段。 我注意到,如果我按 CTRL+F1、ALT+F1 或 SHIFT+F1,它就会起作用,但如果没有焦点组件,则只有 F1 才起作用。 有办法避免这种情况吗?

- - -更新 - - -正如@James_D所说,我可以使用 eventFilter 而不是 eventHandler 来做到这一点:

scene.addEventFilter(KeyEvent.KEY_PRESSED, event -> {
    if (event.getCode().equals(KeyCode.ESCAPE)) {
        try {
            FXMLLoader fxmlLoader = new FXMLLoader(TelaPrincipalController.class.getResource("/br/com/atualy/checkout/layout/telaoperacoescaixa.fxml"));
            Parent parent = fxmlLoader.load();
            Scene scene = new Scene(parent, 600,400);
            Stage stage = new Stage();
            stage.setScene(scene);
            stage.initModality(Modality.APPLICATION_MODAL);
            stage.initOwner(this.stage);
            stage.showAndWait();
            System.out.println("----> THIS IS BEING PRINTED TWICE ! <----");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
});

每按一次 ESC 键,此代码中的第 12 行就会打印两次。这意味着当我按 esc 时,它会打开一个新窗口,当我关闭它时,该窗口会再次打开。 我可以解决吗?


请改用事件过滤器。某些控件会消耗按键事件,因此使用事件过滤器可以让您在控件消耗它们之前对其进行处理。

scene.addEventFilter(KeyEvent.KEY_PRESSED,
                event -> System.out.println("Pressed: " + event.getCode()));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果有焦点组件,则不会执行场景的 JavaFX 按键事件 的相关文章

  • 如何在itext中设置自定义颜色?

    感谢您花时间回答我的问题 我正在使用 Java 中的 iText 生成 PDF 文档 我需要将表的列标题设置为与值列中的颜色不同的颜色 我有来自 Photoshop 的颜色十六进制值 我正在使用带有块和段落的 PdfPTable 除了 Ba
  • 如何从内容处置中读取编码的文件名

    我得到的内容处置标头值如下 附件 文件名 UTF 8 album jpeg 如何从中提取文件名 album jpeg 在查看该值时 它具有编码格式值 使用Spring的内容配置 https docs spring io spring doc
  • 具有“繁忙”线程的 threadPoolExecutor 如何被终止?

    我的问题有点复杂 让我尝试彻底解释一下 但如果您需要更多详细信息 请随时询问我 我会添加它们 我最近 通过实验 了解到 如果线程连续工作 例如 while true 循环中的整数运算 则中断线程对其没有影响 话题继续进行 就像什么都没发生一
  • while循环内的递归,它是如何工作的?

    你能告诉我这段java代码是如何工作的吗 public class Main public static void main String args Strangemethod 5 public static void Strangemet
  • 在 Postgres 中为特定查询设置 work_mem

    我正在使用一个委托给 JDBC 驱动程序的库PostgreSQL 而且有些查询非常复杂 需要更多内存 我不想设置work mem对于所有查询来说都是大的 只是这个子集 问题是执行以下代码会导致错误 pseudo code for what
  • jUnit 中每个 @Test 的不同拆卸

    有没有办法为 jUnit 中的每个 Test 定义不同的拆卸 Use the After注释来指示每个之后要运行的方法 Test 像这样的全套注释是 BeforeClass 首先 Tests are run Before 在每个之前 Tes
  • 如何使用 hibernate 过滤器过滤 hibernate 中的实体

    我需要过滤对象列表中的实体 例如 public class Student private int id private List
  • 如何暂停程序直到按下按钮?

    我使用从 jframe 扩展的类 它有一个按钮 我在程序中使用它 我希望当在我的程序中运行 jframe 时我的整个程序暂停 直到我按下按钮 我该怎么做 in c getch 做这个 我想要一个这样的功能 通过睡眠暂停执行 http dow
  • 在 Java 中停止线程? [复制]

    这个问题在这里已经有答案了 我正在编写一段代码 该代码连接到服务器 使用该连接生成一堆线程并执行一堆 东西 在某些情况下 连接会失败 我需要停止一切并从头开始使用新对象 我想在对象之后进行清理 但在线程上调用 thread stop 但此方
  • 查找前 N 个五边形数

    我必须找到第一个N pentagonal numbers 1 从 1 100 并每行显示 10 个 我必须使用getPentagonalNumber int n 方法也是如此 显然这就是它存在的原因 到目前为止 这是我的代码 package
  • Spring 在 AuthenticationSuccessHandler 中自动装配会话范围 bean 不起作用

    我正在使用 spring security 我想初始化一个对象User在用户成功登录后的会话中 安全配置如下 Configuration EnableWebSecurity PropertySource classpath configs
  • Maven 依赖冲突:org.w3c.dom.ElementTraversal

    我有一个 Java 代码库 它使用 Maven 进行依赖项解析并在 CI 上运行测试 经过最近的一批开发 大到足以很难识别重大更改 我的一些测试现在在通过 Maven 运行时失败了NoClassDefFoundError for org w
  • 使用 spring mvc 的多个域

    假设我有一个应用程序必须缩短 URL 但还要执行其他操作 喜欢google com and goo gl or facebook com and fb me 部署两个应用程序很容易 但 目前 仅部署一个应用程序更简单 使用 spring 和
  • 公交车公共交通算法

    我正在开发一个可以查找公交路线的离线 C 应用程序 我可以提取时间表 巴士 路线数据 我正在寻找适用于基本数据的最简单的解决方案 可以使用什么算法来查找从巴士站 A 到巴士站 B 的路线 是否有适用于 C Java 的开源解决方案 数据库的
  • 如何修复 java.lang.ClassNotFoundException: org.springframework.boot.configurationprocessor.json.JSONException 错误?

    当我在生产环境中将 Spring Boot 服务作为 Windows 服务运行时 出现以下错误 服务exe的创建者是Jar2exe https www jar2exe com java lang reflect InvocationTarg
  • 应返回带有 html 代码的字符串的支持 bean 属性返回空字符串

    我的支持 bean 中有一个返回 html 代码的属性 public String getHtmlPrevisualizar return Hello world 我想要做的是在 iframe 中显示这个 html 代码 我用 JavaSc
  • 如何列出所有已加载的 Spring bean 定义文件

    在大型企业系统中 并不总是清楚在 ApplicationContext 构建期间导入了哪些文件 有没有办法列出过程中加载的所有文件 我知道如何列出加载的属性文件 但不知道导入的 bean 文件 更新示例 文件 1 applicationCo
  • 找不到 `activityViewModels()` Hilt Android

    我在我的项目中使用 Hilt 和 MVVM 我想要一个viewModel from activityViewModel在 2 个活动中使用相同的内容 但我的 Android Studio 说未解析的参考 我的应用程序 build gradl
  • 如何在 Hibernate 中使用 SELECT 进行 INSERT

    我需要在休眠中实现以下请求 insert into my table max column values select max id from special table where 如何在休眠中使用注释来做到这一点 Special tab
  • 应用服务器如何注入私有字段?

    我看到这个问题 注入私有 包或公共字段或提供 setter https stackoverflow com questions 2021716 inject into private package or public field or p

随机推荐

  • 如何更改 EKS 中 kube-scheduler 的行为?

    我是 Kubernetes 新手 对设置它完全陌生EKS 我正在努力实现共享GPU在多个 Pod 之间 但是为了查看一些文档和文章 我发现我应该更新kube scheduler configuration带有参数 然后我可以进行必要的更改以
  • 未找到自制程序的 gpg-agent

    我正在尝试安装gpg agent 但我收到一个错误 该公式不存在 brew install gpg agent Error No available formula with the name gpg agent gt Searching
  • 将 RichTextBox 中的制表符转换为空格

    I have a WinForms application with a RichTextBox control on the form Right now I have the AcceptsTabs property set to tr
  • R 中的 Predict.lm() - 如何获得拟合值周围的非常量预测带

    所以我目前正在尝试绘制线性模型的置信区间 我发现我应该为此使用 Predict lm 但我在真正理解该函数时遇到一些问题 并且我不喜欢在不知道发生了什么的情况下使用函数 我找到了几个关于这个主题的操作方法 但只有相应的 R 代码 没有真正的
  • Nunjucks 中的 Javascript 函数

    所以我在 Nunjucks 文档中找到了这个 函数调用 如果您已将 JavaScript 方法传递给模板 则可以像平常一样调用它 foo 1 2 3 但我似乎无法工作 我尝试将我的函数放在 html 页面上
  • 选择文件夹对话框 WPF

    我开发了一个 WPF4 应用程序 在我的应用程序中 我需要让用户选择一个文件夹 应用程序将在其中存储某些内容 文件 生成的报告等 我的要求 能够查看标准文件夹树 能够选择文件夹 WPF 外观和感觉 此对话框必须看起来像为 Windows V
  • 在 R 版本 3.0.2 上安装 Rtools

    我已经安装了devtools对于 R 但是当我使用以下命令调用库时 library devtools 我得到以下输出 WARNING Rtools is required to build R packages but is not cur
  • 使用vba将文件从一个文件夹复制到另一个文件夹

    我知道有一些关于这个主题的类似帖子 但是 我有一个与我在这里看到的所有代码 在谈论这个主题时 不同的代码 我收到的错误是找不到该文件 但这是不可能的 因为我正在 fso CopyFile 中用作 SOURCE 的同一文件夹中搜索文件 所以我
  • C# Winform 关闭程序后进程仍在Windows任务列表管理器中

    为什么关闭程序后该进程仍在Windows任务列表管理器中 我使用登录Form cs STAThread static void Main Application EnableVisualStyles Application SetCompa
  • 我可以从同一解决方案中的不同项目访问另一个项目的嵌入式资源吗?

    我有一个 xml 文件 它作为 Project A 中的嵌入资源 我想从引用 Project A 的 Project B 访问此嵌入资源 基本上 Project B 由单元测试组成 我使用 ReSharper 运行它们 当我在 Projec
  • Python可写缓冲区/内存视图到数组/字节数组/ctypes字符串缓冲区

    Problem 固定大小记录的二进制数据 想要使用struct unpack from和struct pack into来操作二进制数据 不需要数据副本 想要内存中的多个视图来简单地抵消计算等 数据可以位于 array array byte
  • scp通过ssh隧道打开

    我想从已与服务器打开反向隧道的计算机发送文件 反向隧道将计算机上的端口 22 与服务器上的端口 2222 连接 autossh M 0 q f N o ServerAliveInterval 120 o ServerAliveCountMa
  • @AttributeOverride 不适用于继承

    我正在尝试更改子类表中的列名 但 AttributeOverride 注释并未更改它 Entity Table name emp Inheritance strategy InheritanceType TABLE PER CLASS pu
  • 如何删除单击 uib-accordion-heading 时出现的蓝色边框?

    我已尝试以下问题中提出的解决方案但无济于事 从 Chrome 中的 css 自定义样式按钮中删除蓝色边框 https stackoverflow com questions 20340138 remove blue border from
  • 使用 rsync+ssh+公钥作为与 ssh 密钥所有者不同的用户同步本地和远程目录

    目标是通过 ssh 同步本地和远程文件夹 我当前的用户是user1 并且我通过 ssh 对服务器进行了无密码访问设置server1 我想将本地文件夹与上的文件夹同步server1借助于rsync公用事业 通常我会运行 rsync rtvz
  • MergeLatest 的默认值

    官方文档 https doc akka io docs akka current stream operators Source or Flow mergeLatest html of MergeLatest状态 MergeLatest 为
  • QueryPerformanceCounter 和溢出

    我正在使用 QueryPerformanceCounter 在我的应用程序中进行一些计时 然而 运行几天后 该应用程序似乎停止正常运行 如果我只是重新启动应用程序 它就会再次开始工作 这让我相信我的计时代码存在溢出问题 Author Rya
  • 将 CopyPlugin 添加到 next.config.js

    我想将以下内容添加到我的 webpack 配置中 module exports otherConfig plugins new CopyPlugin from node modules pdftron webviewer public to
  • 将字符串转换为数组 - PostgreSQL

    我在表中有一列存储用逗号分隔的名称 例如 Mel s Hou Rest Mel s Lad Rest 我需要的是将这个字符串转换为以逗号分隔的数组 我需要的查询是 SELECT home location subs state FROM c
  • 如果有焦点组件,则不会执行场景的 JavaFX 按键事件

    我有一段代码可以在按下某个键时执行某些功能 scene setOnKeyPressed event gt if event getCode KeyCode F1 doSomething 它可以工作 但前提是没有焦点组件 例如按钮或文本字段