Java:未聚焦时,在第二个监视器中保持窗口全屏

时间:2014-07-11 18:29:13

标签: java swing user-interface jframe multiple-monitors

我正在编写一个利用双显示器设置的java应用程序。我有两个窗口:

  • 窗口1 - 主GUI
  • 窗口2 - 第二台显示器上的全屏

我的问题:第二个窗口只有焦点时才会全屏显示。如果我单击窗口1或将焦点更改为其他内容,则窗口2最小化。 当窗口2没有焦点时,是否会使窗口2保持全屏?

这是我在第二台显示器上全屏显示第二个窗口的代码:

        frame.setExtendedState(Frame.MAXIMIZED_BOTH);
        frame.setUndecorated(true);
        frame.setVisible(true);
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice[] gd = ge.getScreenDevices();
        gd[1].setFullScreenWindow(frame); //gets the 2nd display.

2 个答案:

答案 0 :(得分:3)

尝试获取第二台显示器的大小,而不是将全屏显示器设置为第二帧的大小。同时尝试将第二帧设置为始终在顶部。

答案 1 :(得分:1)

它适用于 TameHog 的评论。您的代码变为:

    frame.setExtendedState(Frame.MAXIMIZED_BOTH);
    frame.setUndecorated(true);
    frame.setVisible(true);
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice[] gd = ge.getScreenDevices();

    // gd[1].setFullScreenWindow(frame); //gets the 2nd display.
    frame.setAlwaysOnTop(true);
    frame.setSize(gd[1].getDefaultConfiguration().getBounds().getSize());
    frame.setLocation(gd[1].getDefaultConfiguration().getBounds().getLocation());