Clock Applet:


JMM zdrojový kód:
import Component native "java/awt/Component"
import Contain   native "java/awt/Container"
import Panel     native "java/awt/Panel"
import Applet    native "java/applet/Applet"
import Font      native "java/awt/Font"
import Graphics  native "java/awt/Graphics"
import Color	 native "java/awt/Color"
import Date	 native "java/util/Date"
import Math	 native "java/lang/Math"
import Window    native "java/awt/Window"
import Frame     native "java/awt/Frame"

class public clock extends Applet {
  int lastxs;
  int lastys;
  int lastxm;
  int lastym;
  int lastxh;
  int lastyh;
  Date dummy;
  String lastdate;
  Font F;
  Date dat;
  Color fgcol;
  Color fgcol2;

constructor(){
  super();
  this.lastxs=0;
  this.lastys=0;
  this.lastxm=0;
  this.lastym=0;
  this.lastxh=0;
  this.lastyh=0;
  this.dummy = Date(null);
  this.F = new Font("TimesRoman", Font.BOLD, 14);
  this.dat = new Date();

  this.fgcol = Color.blue;
  this.fgcol2 = Color.darkGray;
  this.lastdate = this.dat.toLocaleString();
  this.dat = Date(null);
  return;
}

public void init(){
	this.setBackground(Color.yellow);
	this.resize(300,300);
	return;
}


public void circle(int x0, int y0, int r, Graphics g){
  g.drawOval(x0-r,y0-r,r+r,r+r);
  return;
}

public void waitsec(){
Date d1;int ls,ns;
d1=new Date();
ls=d1.getSeconds();
ns=ls;
d1=Date(null);
while(ls==ns){
	d1=new Date();
	ls=d1.getSeconds();
	d1=Date(null);
	}
return;
}

public void paint(Graphics g){
  int xh, yh, xm, ym, xs, ys, s, m, h, xcenter, ycenter;
  String today;
int lasts;
lasts=0;
while (this.dummy != Date(null)) {
  this.waitsec();
  this.dat = new Date();
  s = this.dat.getSeconds();
  m = this.dat.getMinutes();
  h = this.dat.getHours();
  today = this.dat.toLocaleString();
  xcenter=80;
  ycenter=55;

  // x = r(cos a) + xcenter, y = r(sin a) + ycenter
  xs = int(Math.cos(double(s)*3.14/30.0-3.14/2.0)*45.0) + xcenter;
  ys = int(Math.sin(double(s)*3.14/30.0-3.14/2.0)*45.0) + ycenter;
  xm = int(Math.cos(double(m)*3.14/30.0-3.14/2.0)*40.0) + xcenter;
  ym = int(Math.sin(double(m)*3.14/30.0-3.14/2.0)*40.0) + ycenter;
  xh = int(Math.cos((double(h)*30.0+double(m/2))*3.14/180.0-3.14/2.0)*30.0) + xcenter;
  yh = int(Math.sin((double(h)*30.0+double(m/2))*3.14/180.0-3.14/2.0)*30.0) + ycenter;

  // Draw the circle and numbers

  g.setFont(this.F);
  g.setColor(this.fgcol);
  this.circle(xcenter,ycenter,50,g);
  g.setColor(this.fgcol2);
  g.drawString("9",xcenter-45,ycenter+3);
  g.drawString("3",xcenter+40,ycenter+3);
  g.drawString("12",xcenter-5,ycenter-37);
  g.drawString("6",xcenter-3,ycenter+45);

  // Erase if necessary, and redraw

  g.setColor(this.getBackground());
  g.drawString(this.lastdate, 5, 125);
  if (xs != this.lastxs || ys != this.lastys) {
	g.drawLine(xcenter, ycenter, this.lastxs, this.lastys);
	}
  if (xm != this.lastxm || ym != this.lastym) {
	g.drawLine(xcenter, ycenter-1, this.lastxm, this.lastym);
	g.drawLine(xcenter-1, ycenter, this.lastxm, this.lastym);
	}
  if (xh != this.lastxh || yh != this.lastyh) {
	g.drawLine(xcenter, ycenter-1, this.lastxh, this.lastyh);
	g.drawLine(xcenter-1, ycenter, this.lastxh, this.lastyh);
	}
  g.setColor(this.fgcol2);
  g.drawString(today, 5, 125);
  g.drawLine(xcenter, ycenter, xs, ys);
  g.setColor(this.fgcol);
  g.drawLine(xcenter, ycenter-1, xm, ym);
  g.drawLine(xcenter-1, ycenter, xm, ym);
  g.drawLine(xcenter, ycenter-1, xh, yh);
  g.drawLine(xcenter-1, ycenter, xh, yh);
  this.lastxs=xs; this.lastys=ys;
  this.lastxm=xm; this.lastym=ym;
  this.lastxh=xh; this.lastyh=yh;
  this.lastdate = today;
  this.dat=Date(null);
  }
  return;
}

public void start(){
  this.dummy=new Date();
  return;
}

public void stop(){
  this.dummy=Date(null);
  return;
}

public void update(Graphics g){
  this.paint(g);
  return;
}

}