我有一个设置全屏帧的应用程序,但似乎在屏幕保护程序打开时最小化。我希望这个应用程序是触摸屏信息亭的用户可以使用的唯一应用程序,所以这是一个问题。反正有没有阻止这个?
答案 0 :(得分:2)
The internet表示实现此目标的跨平台方法是使用以下代码安排键盘事件:
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();
)。这样屏幕保护程序就不会显示出来了。
我不知道关于一个非hackish,跨平台的解决方案,我很高兴看到一个知道它的人:)
答案 1 :(得分:1)
可能(没试过!)你会通过结合这些问题的答案得到答案:
Calling Win32 API method from Java
Need to disable the screen saver / screen locking in Windows C#/.Net
当然这仅适用于Windows,这就是我向您询问操作系统的原因:)
答案 2 :(得分:1)
另一种方法是在停用时添加窗口侦听器和重置状态:
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowDeactivated(WindowEvent e) {
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
// or go to fullscreen mode here
}
});
但禁用屏幕保护程序可能是最好的选择。