当屏幕保护程序打开时,全屏java应用程序最小化
我有一个设置全屏画面的应用程序,但当屏幕保护程序打开时,它似乎会最小化。我希望这个应用程序是触摸屏信息亭用户可以使用的唯一应用程序,所以这是一个问题。有没有办法防止这种情况发生?说实现这一点的跨平台方法是使用以下代码安排键盘事件:当屏幕保护程序打开时,全屏java应用程序最小化,java,swing,screensaver,minimize,Java,Swing,Screensaver,Minimize,我有一个设置全屏画面的应用程序,但当屏幕保护程序打开时,它似乎会最小化。我希望这个应用程序是触摸屏信息亭用户可以使用的唯一应用程序,所以这是一个问题。有没有办法防止这种情况发生?说实现这一点的跨平台方法是使用以下代码安排键盘事件: import java.awt.Robot; public void disableScreenSaver() throws AWTException { Robot r = new Robot(); r.waitForIdle(); r.keyPress
import java.awt.Robot;
public void disableScreenSaver() throws AWTException {
Robot r = new Robot();
r.waitForIdle();
r.keyPress(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_CONTROL);
}
并计划每隔几分钟运行一次(例如,使用thread.sleep();
)。这样屏幕保护程序就不会出现
不过,我不知道一个非黑客的跨平台解决方案,我很高兴看到有人知道它:)可能(还没有尝试过!)您可以通过组合以下问题的答案得到答案:
当然,这只适用于Windows,这就是我询问您有关操作系统的原因:)另一种方法是添加窗口侦听器,并在其停用时重置状态:
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowDeactivated(WindowEvent e) {
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
// or go to fullscreen mode here
}
});
但是禁用屏幕保护程序可能是最好的开始。您使用哪种操作系统?难道您不能禁用屏幕保护程序吗?这些机器是24/7运行的,我们不希望在600美元的触摸屏上浪费生命。这可能就是您要找的:这更是我要找的途径。不要使用
thread.sleep()代码>在此循环中的一个线程中。改用ScheduledExecutorService
。