我正在尝试创建一个以全屏模式运行的java swing应用程序,它可以在我的应用程序的顶部(前面)以全屏模式启动powerpoint演示,然后当它们结束时,返回我的应用程序。
我构建一个JFrame并以这种方式启动它:
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(myFrame);
为了启动powerpoint演示,我有一个调用applescript的按钮,告诉powerpoint打开一个演示文件并运行它。这是有效的,但演示文稿只在挥杆应用程序再次接管并在屏幕上显示之前出现一秒钟。进一步的按钮点击似乎不会将演示文稿带回到前面。
理想的行为:
我真的很想了解幕后发生的事情,但很难知道在Google上搜索什么。如果有人能指出我正确的方向,我真的很感激。
更新1
由于我是这个论坛的新手,我正在关注RealSkeptics关于使用新信息编辑此帖子的建议,而不是添加评论。我将留下我目前的评论,但将继续编辑。无论如何,随着更新:
我尝试将摆动框架切换到最大化并“始终在顶部”而不是全屏模式。遗憾的是,“始终在线”设置将其置于演示模式下的PowerPoint演示文稿的上方(前面)。如果我可以改变这种行为,这个解决方案可能对我有用。
更新2
我一直在考虑Mac OS的“Spaces”(虚拟桌面)。许多程序在通过菜单的“进入全屏模式”将内容置于全屏模式时,为该窗口创建一个新的空间。进入任务控制将显示正常桌面,以及新全屏程序的另一个空间。但是,在演示模式下,PowerPoint不会进入新的空间,它会覆盖当前的桌面。我没有机会在全屏模式下使用Swing应用程序进入任务控制,看看会发生什么,但是当我这样做时会发布更新。
我想知道可能会尝试从我的应用程序启动演示文稿以在新空间中打开。我还不知道空间如何在Mac OS的窗口系统环境中工作,但是我希望每个空间都可以在全屏中显示某些内容,并且最新的内容将一直显示直到关闭,此时新的空间将被销毁并且普通桌面将被返回,其中swing应用程序仍处于全屏独占模式。