2010-01-25 9 views
14

Ho scritto un programma che risolve labirinti con ricerca in profondità. Mi stavo chiedendo come trasformare questo programma Java in un'applicazione Screensaver? C'è un modo in cui Windows 7 avvia la mia app quando normalmente si attiva lo screensaver?Trasforma l'app Java in Windows Screensaver

+0

Quale piattaforma? finestre? Mac? Linux? commodore 64? –

+0

@Byron Whitlock: Oh scusa, ho dimenticato di menzionare: Windows 7. Ho modificato la mia domanda. – citronas

+0

Hai mai trasformato la tua app java in uno screensaver? Sto cercando di fare la stessa cosa, e sarei interessato a sapere come è andata a finire per te. – LarsH

risposta

16

Uno screen saver di Windows è solo un programma che accetta determinati command line arguments. Quindi, per fare in modo che il tuo programma sia eseguibile come screen saver, devi codificarlo per accettare quegli argomenti.

Successivamente probabilmente vorrai che lo screen saver funzioni in modalità schermo intero. Questo è molto semplice da fare in Java come l'esempio qui sotto mostra:

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); 
    } 
} 

Infine avrete bisogno per rendere il vostro programma Java in un eseguibile di Windows usando qualcosa come Launch4j e dargli .scr estensione.

+1

Sembra al di là di accettare solo determinati comandi argomenti linea, deve essere in grado di mostrare la sua anteprima in una finestra genitore, invece che nel proprio frame, giusto? Come si fa? Senza JDIC. Inoltre, quando si è in modalità impostazioni, dove si memorizza (persistono) impostazioni? – LarsH

4

Gli screensaver di Windows sono solo file exe che accettano determinati argomenti della riga di comando, detailed here.

Se è possibile compilare l'app java in un exe (io non uso java molto più quindi non sono sicuro di quali strumenti esistono), quindi rinominarlo in .scr, che lo farebbe. Oppure potrebbe essere appena sufficiente per creare un file .bat come:

@echo off 
java myProg.class %1 

.. E rinominarlo .scr.

7

Non l'ho mai usato ma potrebbe essere il punto di partenza. Screen Saver API.


Il link per l'SDK screensaver sembra essere rotto in questo momento così stanno collegando alla pagina indice: JDIC. Quando aggiusteranno il loro link, sistemo questo.

+0

Ho letto che JDIC è praticamente morto – LarsH

+1

404 non trovato sul link – Miles

1

Vorrei esaminare l'API SaverBeans per la creazione di screen saver in Java.

0

Una delle alternative a questo approccio è il nuovo JavaFX. Puoi creare fantasiosi salvaschermo nello stesso modo in cui lo fai in Swing. Inoltre, si ottiene facilmente il file * .exe usando NetBeans.

0

Utilizzare il library.JScreenSaver JScreenSaver è il middleware di fare uno screen saver per Windows in linguaggio Java