我一直在网上搜索这个,从堆栈溢出答案到堆栈溢出答案,尝试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
答案 0 :(得分:3)
嘛!我有一个最后的想法,它工作了!我使用了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;
}