【发布时间】:2021-04-14 18:59:49
【问题描述】:
我需要在 Windows 10 计算机上拖动没有键盘焦点的窗口。我的 PC 上的 Swing 功能拒绝在同一个 Java 应用程序中的所有窗口上“鼠标聚焦”;它们被锁定,无法移动或被发现。
最新的 Swing 对话窗口控制显示;当其他应用程序窗口覆盖时,查看所需的任何其他窗口(以帮助回答对话框)不可用。在 Mac/OS X 上,鼠标焦点不是问题;所有窗户似乎都有它。
在使用方便的模态 Swing 功能时,有没有办法在 PC 上获得这种“鼠标焦点”?
我的应用程序中有问题的 3 个窗口是:
- 对话框:最新的 Swing 对话框集中了所有鼠标焦点
- Blocker:一个 JFrame 或 JDialog 窗口,它可能是也可能不是 Dialog 的祖先,但它是一个足够大的窗口来阻止 Blockee 的视图
- 被阻止者:拥有回答对话所需信息的人。 在这种情况下,只能在 Windows 10 上拖动 Dialog。 将所需的信息移入对话框是唯一的答案吗? 是否有 Windows 10 设置可以使其执行更明智? 我尝试为 Blockee 和 Blocker 使用不同的线程,但无济于事。
【问题讨论】:
-
我从来没有遇到过拖动模态 JDialog 的问题。发布您的minimal reproducible example 来证明问题。
-
是的,当您打开模态 JDialog 时,无法在 Windows 10 上移动底层 JFrame。要么使您的 JDialog 更小以便可以将其移开,要么从 JFrame 中复制信息到 JDialog,这样用户就不必再参考 JFrame。
-
不幸的是,勒布朗先生所说的看起来是正确的。我编辑了我的问题以激发更好的选择。
标签: java windows swing modal-dialog focus