我的OS X独立Java程序使用
Desktop.getDesktop().open(f); // Run the Tutorial.pdf file
运行客户端的默认PDF阅读器并显示文件。 Reader完成并将控制权返回给调用Java程序。但是,Java程序没有焦点。客户必须单击它才能获得焦点。 Java程序有没有办法重新获得关注?我已经尝试了几件事,但都需要关注程序的组件 - 而不是程序本身。
答案 0 :(得分:0)
要激活您的应用程序窗口,请使用:
myFrame.toFront();
请务必将其换行以便在EDT上运行,例如SwingUtilities.invokeLater()
。
如果出于某些原因无效,您可以尝试:
myFrame.setAlwaysOnTop(true);
myFrame.setAlwaysOnTop(false);
如果仍然无效,您可以尝试使用AppleScript。
public class Test extends JFrame {
public Test() {
setSize(100, 100);
setVisible(true);
}
public static void main(final String[] args) {
final Timer timer = new Timer();
final Test test = new Test();
final TimerTask timerTask = new TimerTask() {
@Override
public void run() {
test.bringToFront();
}
};
timer.schedule(timerTask, 5000, 5000);
}
private void bringToFront() {
final ScriptEngineManager mgr = new ScriptEngineManager();
final ScriptEngine engine = mgr.getEngineByName("AppleScript");
try {
engine.eval("tell me to activate");
} catch (final ScriptException ex) {
ex.printStackTrace();
}
}
}