我已经在互联网上到处寻找这个问题,从堆栈溢出答案到堆栈溢出答案,尝试了rococoa或Class.forName ("com.apple.cocoa.application.NSApplication");等。
问题的底线是,看在上帝的份上,我不能想出如何让我的Java应用程序专注于OSX!
让我说清楚:我的应用程序没有窗口(将来会有,但有时可能根本没有窗口)。我需要一种方法来关注我的应用程序,而不是依赖于windows。
在没有找到任何东西的情况下,我绝望地决定尝试一个依赖于有一个窗口的解决方案:
private static void BringSelfToFocus()
{
java.awt.EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
Window window = new JFrame("Test");
window.toFront();
window.repaint();
}
});
}然而,就像我的其他所有徒劳的尝试一样,这也失败了。
所以,是的,虽然从技术上讲这是一个重复的问题,但我已经尝试了我能找到的所有其他答案,无论是什么原因,它们都没有奏效。
有人能在这件事上伸出援手吗?谢谢你。
-Georges
发布于 2013-03-15 15:14:39
井!我有一个最终的想法,它成功了!我使用的是Applescript。
private static void BringSelfToFocus()
{
AppleScript("tell me to activate");
}
private static String AppleScript(String script)
{
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("AppleScript");
if (engine != null) {
try
{
return (String)engine.eval(script);
}
catch (ScriptException e)
{
e.printStackTrace();
}
}
return null;
}https://stackoverflow.com/questions/15426390
复制相似问题