2010-01-25 2 views
14

Я написал программу, которая разрешает лабиринты с поиском глубины. Мне было интересно, как превратить эту программу Java в приложение Screensaver? Есть ли способ, которым Windows 7 запускает мое приложение, когда заставка обычно активируется?Включите приложение Java в Windows Screensaver

+0

Какая платформа? окна? макинтош? линукс? коммодор 64? –

+0

@Byron Whitlock: О, извините, забыли упомянуть: Windows 7. Я редактировал свой вопрос. – citronas

+0

Вы когда-нибудь делали свое приложение java в заставке? Я пытаюсь сделать то же самое, и мне было бы интересно услышать, как это пошло для вас. – LarsH

ответ

16

Экранная заставка Windows - это просто программа, которая принимает определенные command line arguments. Поэтому, чтобы ваша программа была запущена в качестве экранной заставки, вы должны ее закодировать, чтобы принять эти аргументы.

Далее вы, вероятно, захотите, чтобы экранная заставка работала в полноэкранном режиме. Это очень просто сделать в Java, как показывает следующий пример:

public final class ScreenSaver { 

    public static final void main(final String[] args) throws Exception { 
     UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

     final JFrame screenSaverFrame = new JFrame(); 
     screenSaverFrame.setDefaultCloseOperation(
      WindowConstants.EXIT_ON_CLOSE); 
     screenSaverFrame.setUndecorated(true); 
     screenSaverFrame.setResizable(false); 
     screenSaverFrame.add(new JLabel("This is a Java Screensaver!", 
           SwingConstants.CENTER), BorderLayout.CENTER); 
     screenSaverFrame.validate(); 
     GraphicsEnvironment.getLocalGraphicsEnvironment() 
        .getDefaultScreenDevice() 
        .setFullScreenWindow(screenSaverFrame); 
    } 
} 

Наконец, вам нужно будет сделать программу Java в исполняемый файл Windows, используя что-то вроде Launch4j и дать ему .scr расширения.

+1

Похоже, что вы не просто принимаете определенную команду line аргументы, он должен иметь возможность показывать свой предварительный просмотр в родительском окне, а не в своем собственном фрейме, правильно? Как вы это делаете? без JDIC. Также, когда в режиме настроек, где вы сохраняете (сохраняете) настройки? – LarsH

4

Windows screensavers - это только файлы exe, которые принимают определенные аргументы командной строки, detailed here.

Если вы можете скомпилировать ваше приложение java в exe (я больше не использую java, поэтому я не уверен, какие инструменты существуют), а затем переименуйте его в .scr, чтобы это сделать. Или это может быть просто достаточно, чтобы сделать bat-файл, например:

@echo off 
java myProg.class %1 

.. И переименовать его в .scr.

7

Я никогда не использовал это, но это может быть место для начала. Screen Saver API.


Ссылка на заставке SDK, кажется, сломана в тот момент, так что я ссылки на индексную страницу: JDIC. Когда они исправит свою связь, я настрою это.

+0

Я читал, что JDIC в основном мертв. – LarsH

+1

404 не найден по ссылке – Miles

1

Я бы заглянул в API SaverBeans для создания хранителей экрана на Java.

0

Одним из альтернатив этому подходу является новый JavaFX. Вы можете создать причудливую заставку так же, как и в Swing. Кроме того, вы легко получаете * .exe-файл с помощью NetBeans.

0

Используйте JScreenSaver library.JScreenSaver является промежуточным, чтобы сделать заставку для Windows, в Java языке

Смежные вопросы