如何在多个监视器配置中部署JFrame

时间:2011-10-07 14:07:36

标签: java swing jframe multiple-monitors

我想构建一个有2个窗口的应用程序。 第一个应始终位于第一个监视器中,并且不能最大化。 第二个应该在第二个监视器中启动(一个完美的例子就像PowerPoint的演示模式),运行在任何其他应用程序窗口的“顶部”,并始终最大化。使用提供给第一个窗口的侦听器启动此窗口。 请注意,这些“监视器”可能是演示中使用的LCD投影仪,或真正的台式计算机监视器。

我知道存在GraphicsEnvironment API,我们可以知道我们的监视器配置是作为单个监视器处理还是单独处理。但是,我不知道如何实现它。我的意思是,由于屏幕配置可以根据其显卡进行不同的处理,我们如何验证它们?

例如,如果将3个监视器视为具有大分辨率的单个监视器,那么我们可以将第二个窗口的坐标x0设置为:total_width * 2/3。 但是,如果它被视为单独的监视器怎么办?

感谢。

1 个答案:

答案 0 :(得分:2)

@Zecas:是的,效果很好。很抱歉没有在这里发布答案。我完全忘记了。 因此,解决方案与ShivanDragon所说的完全一样,我们可以先通过获取GraphicsEnvironment来获得每个监视器,然后从环境中获取我们的屏幕设备:

GraphicsEnvironment ge = GraphicsEnvironment .getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();

之后,只需使用:

gs[_screen_index].setFullSCreenWindow(_frame)