Anzeige der aktuellen Uhrzeit

Ideen, wie TV-Browser verbessert werden kann
Gast

Anzeige der aktuellen Uhrzeit

Beitrag von Gast »

Es wäre schön, wenn man im Hauptfenster irgendwo die aktuelle Uhrzeit anzeigen könnte (über der Senderliste im rechten Bereich oder in der Statusbar).

Hier gleich mal ein kleines Code-Snippet von mir (ein JLabel zur Darstellung eines Datums/der Uhrzeit, das sich über einen Timer neuzeichnet und über DateFormat auch lokalisierbar ist):


import java.text.DateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

/**
* JLabel zur Darstellung der aktuellen Uhrzeit/des aktuellen Datums.
* Die Aktualisierung erfolgt über einen internen Timer, der jede Sekunde
* die Anzeige aktualisiert.
* @see ClockLabel#isRunning()
* @see ClockLabel#startClock()
* @see ClockLabel#stopClock()
*/
public class ClockLabel extends javax.swing.JLabel
{
/**
* Timer, der das Label jede Sekunde aktualisiert.
*/
private Timer clockTimer;
/**
* Zeigt an, ob der Timer gestartet wurde.
*/
private boolean running;
/**
* DateFormat-Instanz, die zur Formatierung der Uhrzeit
* verwendet werden soll (lokalisierbar).
*/
private DateFormat format;

/**
* Erzeugt eine neue Instanz mit Standard-Formatierung
* (HH:mm:ss).
*/
public ClockLabel()
{
this(null);
}

/**
* Erzeugt eine neue Instanz mit der angegebenen Formatierung.
* @param format DateFormat-Instanz, die die Formatierung der Uhrzeit bzw.
* des Datums festlegt
*/
public ClockLabel(final DateFormat format)
{
super();
initComponents();
setDateFormat(format);
startClock();
}

/**
* Setzt die DateFormat-Instanz, die die Formatierung der Uhrzeit bzw.
* des Datums festlegt. Bei Angabe von null wird die Standard-Formatierung
* für Uhrzeiten (HH:mm:ss) verwendet; abhängig von Locale.getDefault().
* @param format DateFormat-Instanz, die die Formatierung der Uhrzeit bzw.
* des Datums festlegt.
*/
public synchronized void setDateFormat(final DateFormat format)
{
this.format = (format==null ? DateFormat.getTimeInstance() : format);
}

/**
* Liefert die aktuell verwendete DateFormat-Instanz, die die Formatierung
* der Uhrzeit bzw. des Datums festlegt.
* @return DateFormat-Instanz, die die Formatierung
* der Uhrzeit bzw. des Datums festlegt.
*/
public DateFormat getDateFormat()
{
return format;
}

/**
* Liefert true, falls der Timer zur Aktualisierung der Uhrzeit
* gestartet wurde und ausgeführt wird.
* @return true, falls der Timer zur Aktualisierung der Uhrzeit
* gestartet wurde und ausgeführt wird.
* @see ClockLabel#startClock()
* @see ClockLabel#stopClock()
*/
public boolean isRunning()
{
return running;
}

/**
* Startet den Timer zur Aktualisierung der Uhrzeit.
* @see ClockLabel#isRunning()
* @see ClockLabel#stopClock()
*/
public synchronized void startClock()
{
if (running)
{
return;
}
clockTimer = new Timer(true);
clockTimer.scheduleAtFixedRate(
new TimerTask()
{
/**
* The action to be performed by this timer task.
*/
public void run()
{
final ClockLabel cl = ClockLabel.this;
cl.setText(cl.format.format(Calendar.getInstance().getTime()));
}
}, 0L, 1000L);
running = true;
}

/**
* Stoppt den Timer zur Aktualisierung der Uhrzeit.
* @see ClockLabel#isRunning()
* @see ClockLabel#startClock()
*/
public synchronized void stopClock()
{
if (!running)
return;

clockTimer.cancel();
clockTimer.purge();
clockTimer = null;
running = false;
}
}
icewind
Platin Member
Beiträge: 821
Registriert: 17 Jan 2005, 16:34

Re: Anzeige der aktuellen Uhrzeit

Beitrag von icewind »

Es wäre schön, wenn man im Hauptfenster irgendwo die aktuelle Uhrzeit anzeigen könnte (über der Senderliste im rechten Bereich oder in der Statusbar).
Und wieso? *umguck*

- Radio
- Wanduhr
- Wecker
- Armband
- Schreibtisch
- Taskleiste

Und jetzt noch 'ne Uhr mehr? Was soll das bringen ausser überflüssigem Code-Balast?
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Also in unserer Langfristigen "Vision" kann jedes Plugin eine eigenen Bereich im Hauptfenster haben. Dann könnte man auch die Uhr einbauen ;).

Ich hab hier auch schon eine nette Uhr mit Digital-Effekt als Quelltext vorliegen.
Benutzeravatar
Til
Site Admin
Beiträge: 1498
Registriert: 04 Dez 2003, 11:21
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von Til »

Das Thema hatten wir schonmal: http://hilfe.tvbrowser.org/viewtopic.php?t=509

Ich finde immer noch, dass es etwas sinnlos ist, in einem Programm die Uhrzeit anzuzeigen. In jedem Betriebsystem wird die Uhrzeit in der Taskleiste angezeigt. Warum sollte das dann ein Programm auch noch tun?
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Jup. Und deswegen wird das auch nur eingebaut werden, wenn es ein Plugin is ;).

Was ich aber lieber hätte:
ein keines Fenterchen was das Wetter die nächsten 3 Tage anzeigt ;). Dann kann man besser planen was man Abends macht *g*
Gast

Beitrag von Gast »

Til hat geschrieben:Das Thema hatten wir schonmal: http://hilfe.tvbrowser.org/viewtopic.php?t=509

Ich finde immer noch, dass es etwas sinnlos ist, in einem Programm die Uhrzeit anzuzeigen. In jedem Betriebsystem wird die Uhrzeit in der Taskleiste angezeigt. Warum sollte das dann ein Programm auch noch tun?
Damit man auf einen Blick sieht, ohne die Augen erst im Raum schweifen lassen zu müssen (sofern man denn eine Wanduhr hat und man das Licht nicht ausgeschaltet hat) und ohne das man die Taskbar hervor holen muss (die kann man ausblenden), wie spät es ist.

Warum? Usability. Und mit einer Ckeckbox kann man das ganze ausblenden... man sollte nie von der eigenen Konfiguration des Rechners ausgehen und das jeder eine Uhr im Blickfeld hat - und gerade bei einem TV-Planer macht eine Uhr Sinn. Bei einer Uhr im Taschenrechner oder im Notpad würde ich Recht geben. :wink:
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Wie gesagt, als Plugin gerne, als Teil im Programm: Nein.
platin(x)
Gold Member
Beiträge: 269
Registriert: 08 Jul 2004, 16:22

Beitrag von platin(x) »

Mein Code von damals:

Code: Alles auswählen

class JTimeShowingProgressBar extends JProgressBar {
	
	private Calendar   calendar;
	private DateFormat formatter;
	
	/**
	 * 
	 */
	public JTimeShowingProgressBar() {
		super();
		init();
	}
	
	/**
	 * @param orient
	 */
	public JTimeShowingProgressBar(int orient) {
		super(orient);
		init();
 	}
	
	/**
	 * @param min
	 * @param max
	 */
	public JTimeShowingProgressBar(int min, int max) {
		super(min, max);
		init();
	}
	
	/**
	 * @param orient
	 * @param min
	 * @param max
	 */
	public JTimeShowingProgressBar(int orient, int min, int max) {
		super(orient, min, max);
		init();
	}
	
	
	private void init(){
		this.setStringPainted(true);
		calendar  = new GregorianCalendar( TimeZone.getTimeZone("ECT") );
		formatter = DateFormat.getTimeInstance(DateFormat.SHORT);
		install();
	}
	
	private void install(){
	    new javax.swing.Timer(1000, new ActionListener() {
	        public void actionPerformed(ActionEvent evt) {
	        	if(isStringPainted()){

       				calendar.setTimeInMillis(System.currentTimeMillis());
	        				setString(formatter.format( calendar.getTime() ));
	        	}
	        }
	      }).start();
	}
	
	public void setValue(int value){
		super.setValue(value);
		if(value > 0){
			setStringPainted(false);
		} else {
			setStringPainted(true);
		}
	}
	
}
Einfach in StatusBar.java JProgressBar durch JTimeShowingProgressBar ersetzen, neu übersetzen und fertig...
Benutzeravatar
Siggi
Moderator
Beiträge: 2272
Registriert: 31 Dez 2003, 12:21
Wohnort: Doberlug - Kirchhain

Beitrag von Siggi »

Hallo Platin(X)!

Kannst du das nicht als Plugin auslegen. Ich würde das auch gern auch nutzen.

Also ein Plugin welches die Statusbar verwaltet. Und wenn nichts passiert die Uhr einblendet. Desweiteren könnte das Plugin in Version 2.0 den Bereich ansprechen, den Bodo gemeint hat.

Danke, wenn das gehen würde.

Bis dann.
mfg Siggi

PS: Wer Fehler findet, darf Sie behalten!!! :-)
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Ne, das is nicht als Plugin möglich.
Benutzeravatar
Siggi
Moderator
Beiträge: 2272
Registriert: 31 Dez 2003, 12:21
Wohnort: Doberlug - Kirchhain

Beitrag von Siggi »

Plugins oder Dataservices schreiben doch auch in die Statusleiste.

Da sollte doch auch jeder andere reinschreiben können, oder?

Trotz alle dem sollte es solch eine Möglichkeit geben, irgendwo im TVBrowser die Uhrzeit anzuzeigen.

Danke.
mfg Siggi

PS: Wer Fehler findet, darf Sie behalten!!! :-)
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Da schreibt kein Plugin in die Statusleiste. Das macht alles der Kern-TV-Browser. Ein Daten-Plugin kann seinen momentanen Status übermitteln und das wird angezeigt. Das wars dann auch schon.

Hast du keine Taskbar mit Uhr? Nur weil TV-Genial eine Uhr hat, müssen wir das noch lange nicht nachmachen *g*
Benutzeravatar
Siggi
Moderator
Beiträge: 2272
Registriert: 31 Dez 2003, 12:21
Wohnort: Doberlug - Kirchhain

Beitrag von Siggi »

Ich hatte nie TV Genial.

Aber wenn das auf so viel Ablehnung stößt, dann möchte ich das hiermit beenden.

Vieleicht mach das irgendwann mal jemand als Plugin. Wenn nicht dann nicht.

Und ja ich habe ne Taskleiste mit Uhr. Ich wollte auch nur ein bisschen in der Mehrzahl sprechen.

Aber nun gut.
mfg Siggi

PS: Wer Fehler findet, darf Sie behalten!!! :-)
ds10
Site Admin
Beiträge: 19125
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Beitrag von ds10 »

Ich könnte schnell mal ein Plguin erstellen, dass einen Button für die Uhrzeit in die Werkzeugleiste legt und beim Klicken darauf die Uhrzeit in einem Extra-Fenster für vielleicht 5 Sekunden anzeigt, falls das gewünscht wird.

Alle anderen Ideen finde ich auch nicht sinnvoll.
Benutzeravatar
Siggi
Moderator
Beiträge: 2272
Registriert: 31 Dez 2003, 12:21
Wohnort: Doberlug - Kirchhain

Beitrag von Siggi »

Hallo ds10!

Jo, das wär doch ne Lösung mit der man hier arbeiten könnte.

Wenn die Zeit fürs einblenden noch einstellbar wäre, dann wäre das glaube ich perfekt.

Wenn dann später andere noch ein anderen Vorschlag haben, kann man das ja erweitern.

Kannst du auch die Uhrzeit auf den Button in der Werkzeugleiste legen?
Welcher Bereich ist das, den Bodo meint? Kannst du den nicht evtl schon nehmen?

Danke.
mfg Siggi

PS: Wer Fehler findet, darf Sie behalten!!! :-)
Antworten