如何侦听java.awt.Window屏幕中的更改?在使用setFullScreenWindow()时,是否有办法将焦点放在其他窗口/程序上?
我有一个像这样的全屏幕窗口如何侦听java.awt.Window屏幕中的更改?在使用setFullScreenWindow()时,是否有办法将焦点放在其他窗口/程序上?,java,window,awt,listener,fullscreen,Java,Window,Awt,Listener,Fullscreen,我有一个像这样的全屏幕窗口 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] gs = ge.getScreenDevices(); if (gs.length >= 1) gs[1].setFullScreenWindow(frame); else gs[0].setFullScreenWindow(frame); 这会将帧放在第二个
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
if (gs.length >= 1)
gs[1].setFullScreenWindow(frame);
else
gs[0].setFullScreenWindow(frame);
这会将帧放在第二个监视器上,除非没有第二个监视器,否则会将窗口放在主监视器上
现在我的问题是,我似乎找不到办法将窗口推到后面,迫使它将焦点转移到窗口前面的其他窗口、对话框,甚至像Google Chrome这样的东西——如果用户启动程序时没有插入辅助监视器,或者如果辅助监视器被拔出,这可能会成为一个问题(在这两种情况下,全屏窗口都会显示在主显示屏上)
有没有办法让其他窗口、JFrames或任何需要的焦点位于窗口上方?
或者是否存在某种我不知道的侦听器,它允许我在全屏窗口移动到主显示时处理它(我已尝试在扩展窗口的类中实现ComponentListener)?
setFillScreen
是一种用于将程序设置为“全屏独占模式”的方法,这意味着您的应用程序对屏幕具有独占控制权,不应呈现其他程序
你真的只是想最大化窗口吗?在这种情况下,你应该使用并传递它Frame.MAXIMIZED\u这两个
您可能还想了解一下SetFillScreen是一种用于将程序设置为“全屏独占模式”的方法,这意味着,您的应用程序对屏幕具有独占控制权,不应呈现其他程序。您实际上只是想最大化窗口吗?在这种情况下,您应该使用并传递它帧。最大化\u BOTHI可以尝试,但如何将帧发送到次屏幕?还将设置为未装饰()具有与全屏相同的概念(即没有任何边界等的清晰框架)?从记忆中,我过去所做的是抓住我想要使用的屏幕边界,并将窗口定位在场景左上角(或屏幕边界内)。我们将框架设置为未修饰将移除框架边界