我如何使我的JFrame在所有其他东西之前保持领先,但我的Java应用程序始终没有焦点?

我如何使我的JFrame在所有其他东西之前保持领先,但我的Java应用程序始终没有焦点?,java,macos,swing,focus,Java,Macos,Swing,Focus,我正在尝试为不能使用物理键盘的程序员编写一个定制的屏幕键盘(MacOSX)。这涉及到在所有打开的应用程序上都有一个窗口(这部分已经解决),但实际上让紧跟在我后面的任何应用程序都是当前活动窗口。我正在与AppleScript系统事件集成以处理击键,但文本正在发送到我的应用程序,即使我的Jframe已初始化如下: JFrame frame = new JFrame("Programmer Keyboard"); frame.setAlwaysOnTop(true); frame.setFocusab

我正在尝试为不能使用物理键盘的程序员编写一个定制的屏幕键盘(MacOSX)。这涉及到在所有打开的应用程序上都有一个窗口(这部分已经解决),但实际上让紧跟在我后面的任何应用程序都是当前活动窗口。我正在与AppleScript系统事件集成以处理击键,但文本正在发送到我的应用程序,即使我的Jframe已初始化如下:

JFrame frame = new JFrame("Programmer Keyboard");
frame.setAlwaysOnTop(true);
frame.setFocusableWindowState(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//components added here

frame.pack();
frame.setVisible(true);
有人能给我提供这方面的建议吗?
(为了更好地理解我在寻找什么,请打开“Keyboard Viewer.app”)

我找到了一个临时解决方法,在输入文本之前触发cmd+tab;但是我想要一个更好的解决方案,因为当活动窗口切换到我的应用程序并返回时,会产生闪烁。