2011-01-10 20 views
1

Ich habe mehrere Microbreaks Software-Lösungen verwendet. Und alle von ihnen sind Overkill und/oder tun nicht genau das, was ich will.Microbreaks - Java Swing-Tool

Ich fand, dass die Pause alle 20 Minuten zu strecken und meine Augen neu zu fokussieren hilft enorm mit meiner Energie während des ganzen Tages.

Ich habe mit allen Arten von Dienstprogramme auf dem inet zum Beispiel RSI-Shield

I Swing-Programm erstellen möchten, werden:

  1. Nehmen Sie zwei Parameter auf der Kommandozeile:
    breakLength : Zeit der Pause (Standard 60 Sek.)
    breakPopup: Zeit, in der der Bildschirm deaktiviert wird. (Standard 20 min)

  2. Das Programm läuft als Dienst ideal mit Manager-Symbol (rechte untere Ecke für Windows) , die es ermöglicht, beendet oder ausgesetzt werden (für den Fall, dass ich Youtube oder etwas, das ich nicht ' Ich will brechen von).

  3. Wenn das Programm die breakPopup-Zeit erreicht, wird der gesamte Bildschirm ausgegraut und in der Mitte einige Tipps angezeigt (in der Datei tips.properties (tip1: "Stretch legs"). Es wird nicht heruntergezählt .. von grauem Hintergrund gute Idee sein würde, erraten

  4. Wenn das Programm erreicht Ende breakLength wird es selbst suspendieren und für einen anderen breakPopup Zeitplan warten

Probleme:

  1. Wie schreibe ich in Swing-Anwendung, die den gesamten Bildschirm ohne Grenzen abdeckt? Und wie zentrierst du Tipps mitten drin?

  2. Was ist der beste Weg, um dies zu schreiben als Dienst im Hintergrund mit kleinen App, die es starten und stoppen würde gehen? (Wie wenn Sie Tomcat auf Windows Maschine haben)

  3. Was ist der beste Weg, um die Timer-Scheduling-Logik zu nähern? Im Idealfall ohne Verwendung von Bibliotheken von Drittanbietern.

  4. Welcher universelle Installer wäre eine gute Wahl für ein kleines Programm wie dieses?

+0

Siehe auch http://StackOverflow.com/questions/4373493 – trashgod

Antwort

1

Wie in Swing-Anwendung schreiben, die den gesamten Bildschirm ohne irgendwelche Grenzen decken? Und wie zentrierst du Tipps mitten drin?

frame.setUndecorated(true);     // removes all frame decorations 
frame.setExtendedState(Frame.MAXIMIZED_BOTH); // make window appear maximized both horizontally and vertically 

Was ist der beste Weg, um zu schreiben dies als Service im Hintergrund mit kleinen App laufen zu gehen, dass es würde starten und stoppen?(Art wie wenn Sie tomcat auf Windows-Rechner haben)

Nun, starten Sie Ihre Java-Anwendung, dann Zeitplan, durch ein TimerTask, die Anzeige Ihres Hauptrahmen. Aber Vorsicht, die Anzeige muss im Ereignisversand Thread erfolgen. Rufen Sie dazu den TimerTask-Aufruf SwingUtilites#invokeLater() ... oder rufen Sie einfach

an. Was ist der beste Weg, um die Timer-Scheduling-Logik zu erreichen? Im Idealfall ohne Verwendung von Bibliotheken von Drittanbietern.

Nun, scheint wie Timer und TimerTask Teile des JDK sind, so dass Sie sie ohne Probleme verwenden können.

Welcher universelle Installer wäre eine gute Wahl für ein kleines Programm wie dieses.

Ich habe sehr gutes Feedback über IzPack gehört, aber ich kann nicht sicherstellen, dass es die beste Passform ist.

+0

Sicher 10 Minuten ist genug Zeit zu wissen, dass dies die beste Antwort ist. –

+0

Oh Junge, denkst du wirklich, dass jemand mit einer besseren Schwungantwort kommt? Ich denke nein. – Riduidel