Share this page 

Have an on-screen clock (this howto is deprecated)Tag(s): DEPRECATED


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.