Difference between revisions of "Have an on-screen clock"

From CodeCodex

m (Text replace - "<highlightsyntax " to "<pre ")
m (Text replace - "</highlightsyntax>" to "</pre>")
Line 72: Line 72:
 
   }
 
   }
 
}
 
}
</highlightsyntax>
+
</pre>
 
<pre language="java122">
 
<pre language="java122">
 
<HTML><HEAD></HEAD><BODY>
 
<HTML><HEAD></HEAD><BODY>
Line 92: Line 92:
 
</APPLET><P>
 
</APPLET><P>
 
</BODY></HTML>
 
</BODY></HTML>
</highlightsyntax>
+
</pre>
 
Try it [http://www.rgagnon.com/examples/myclock.html here. ]
 
Try it [http://www.rgagnon.com/examples/myclock.html here. ]
  

Revision as of 23:37, 6 January 2012

Implementations

Java

import java.applet.*;
import java.awt.*;
import java.util.*;
import java.text.*;

public class MyClock extends Applet {
  MyPanel mp;
  public void init() {
    mp = new MyPanel(getParameter("format"));
    add(mp);
    }
  }

class MyPanel extends Panel {
  MyClockThread mct;
  Color b, f;
  SimpleDateFormat formatter;
  String previousDateText = "";
  String dateText;

  MyPanel(String df) {
    super();
    formatter = new SimpleDateFormat(df);
    validate();
    setBackground(new Color(0).black);
    setForeground(new Color(0).yellow);
    b = this.getBackground();
    f = this.getForeground();
    mct = new MyClockThread(this);
    mct.start();
    }

  public Dimension getPreferredSize() {
    return new Dimension
     (this.getFontMetrics(this.getFont()).stringWidth(getNow()) + 25, 30);
    }

  public void paint(Graphics g) {
    if (g != null) {
       g.setColor(b);
       g.drawString(previousDateText,10,15);
       g.setColor(f);
       dateText = getNow();
       g.drawString(dateText,10,15);
       previousDateText = dateText;
       }
    }

  public String getNow() {
    return formatter.format(new Date());
    }
}

class MyClockThread extends Thread {
  MyPanel mp;

  public MyClockThread(MyPanel a) {
    mp = a;
    }

 public void run() {
   while (true) {
     try {
       mp.repaint();
       this.sleep(1000);
       }
     catch(InterruptedException e) { }
     }
   }
}
<HTML><HEAD></HEAD><BODY>
<APPLET CODE="MyClock.class"  
        HEIGHT=25 WIDTH=200>
<PARAM NAME="format" VALUE="yyyy-MM-dd hh:mm:ss">       
</APPLET><P>
<APPLET CODE="MyClock.class"  
        HEIGHT=25 WIDTH=200>
<PARAM NAME="format" VALUE="h:mm a">        
</APPLET><P>
<APPLET CODE="MyClock.class"  
        HEIGHT=25 WIDTH=200>
<PARAM NAME="format" VALUE="yyyy.MMMMM.dd GGG hh:mm aaa">       
</APPLET><P>
<APPLET CODE="MyClock.class"  
        HEIGHT=25 WIDTH=200>
<PARAM NAME="format" VALUE="H:mm:ss:SSS">
</APPLET><P>
</BODY></HTML>

Try it here.

Tcl

proc every {t script} {
 eval $script
 after $t [list every $t $script]
}
pack [label .horloge -textvariable time -font {Lucida 18}]
every 1000 {set ::time [clock format [clock seconds] -format %H:%M:%S]}