Полноэкранное Java-приложение минимизируется при включении заставки - PullRequest
3 голосов
/ 30 мая 2011

У меня есть приложение, которое устанавливает полноэкранный кадр, но, кажется, сворачивает при включении заставки. Я хочу, чтобы это приложение было единственным приложением, которое могут использовать пользователи киосков с сенсорным экраном, так что это проблема. Есть ли способ предотвратить это?

Ответы [ 3 ]

2 голосов
/ 30 мая 2011

Интернет говорит, что кросс-платформенный способ добиться этого - планировать события клавиатуры с помощью этого кода:

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();).Таким образом, экранная заставка не будет отображаться.

Я, однако, понятия не имею о нехакерском, кросс-платформенном решении, и я был бы очень рад увидеть его от кого-то, кто его знает:)

1 голос
/ 30 мая 2011

Другой способ - добавить прослушиватель окна и сбросить состояние, когда оно деактивировано:

        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowDeactivated(WindowEvent e) {
                frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
                // or go to fullscreen mode here
            }
        });

Но лучше всего начать с отключения экранной заставки.

1 голос
/ 30 мая 2011

Возможно (еще не пробовал!) Вы получите ответ, объединив ответы на следующие вопросы:

Вызов метода Win32 API из Java

Необходимо отключить заставку / блокировку экрана в Windows C # /. Net

Конечно, это работает только в Windows, поэтому я спросил вас о вашей ОС:)

...