java - 在 Java 中,如何保持原始窗口的焦点,尽管单击 JFrame

标签 java macos window focus

我在 java 中使用这个 setFocusableWindowState(false) 方法时遇到了一些麻烦:

JFrame frame = new JFrame(); frame.setFocusableWindowState(false); frame.setVisibled(true);

即使在 Windows 操作系统中,它也绝对运行良好。 也就是说 - 当 JFrame 可见时,它保持原始窗口的焦点。 所以我可以将一些事件(例如 Keypress)发送到原始窗口。

但是,我在 Mac 中使用相同的代码仍然失败。 只是它失去了焦点,但是原始窗口(在新的 JFrame 窗口出现之前显示)也失去了焦点。所以我永远无法将任何事件发送到 Mac 中的那个窗口。

请帮助我在 Mac OS X 中保持原始窗口的焦点,尽管出现了新的 JFrame。 此外,我同时使用了方法 setAlwaysOnTop(true)

最佳答案

你能试试这个吗

 frame.setExtendedState(JFrame.NORMAL);
 frame.setAlwaysOnTop(true);
 frame.requestFocus();
 frame.setAlwaysOnTop(false);

关于java - 在 Java 中,如何保持原始窗口的焦点,尽管单击 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40688765/

相关文章:

java - 如何清除 JTextArea?

Java:在 'run'类中私下调用 'Runnable'

python - Snow Leopard 上的 Selenium 和 Python

javascript - 使用 JS/Jquery 检测 URL 的更改(不仅仅是哈希)

java - 为什么 Clojure 现在在 JNLP 中失败了?

java - Mongodb 未知错误?

Java 将应用程序带到前端 (OSX)

xcode - NSTextField 没有成员 'text'

wpf - Window.Margin 和 Window.Padding 不起作用

Javascript:过滤已附加到全局范围的变量?