我在 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/