首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java 8弹出窗口不会将焦点移回应用程序

Java 8弹出窗口不会将焦点移回应用程序
EN

Stack Overflow用户
提问于 2016-05-31 18:56:43
回答 1查看 692关注 0票数 0

我有一个Java应用程序,其中显示了一个包含文本字段的弹出窗口。我故意保持这个弹出可见,即使当用户点击远离它。除了一种情况外,这是很好的:

当用户关注弹出窗口中的文本字段时,单击单独的应用程序,然后单击回文本字段。FX应用程序并没有重新获得操作系统的关注。如果用户在键盘上键入,则其他应用程序仍将接收键盘输入。要解决这个问题,用户必须单击弹出窗口外的主FX应用程序窗口。

奇怪的是,在调试过程中,我可以看到弹出窗口中的文本字段正在获得焦点,但是OS并没有显示FX应用程序现在是焦点。有什么方法可以迫使操作系统将焦点转移到我的应用程序上吗?

这种情况发生在Windows和Mac上。我用jdk 8更新45和jdk 8更新92进行了测试。

我用最小的弹出窗口做了一个测试:

代码语言:javascript
运行
复制
static class TestPopup extends Popup {
        TestPopup() {
            content.add(new TextField("Hello"))
        }
    }

我打电话给你看:

代码语言:javascript
运行
复制
new TestPopup().show(somePaneInMainWindow, 0, 0)
EN

Stack Overflow用户

发布于 2016-06-01 18:15:42

经过一些研究,我发现这是预期的行为。

在这里找到答案:id=8123137

从链接中:

这是正确的行为。所有的JavaFX弹出窗口都是不可聚焦的,因此它们只能在所有者窗口当前聚焦的情况下接收输入。弹出窗口通常设置为自动隐藏,当所有者失去焦点,但这不是在这个测试的情况下,所以弹出只是停留在周围。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37553571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档