import java.applet.*;
import java.awt.*;
import java.util.*;
import java.text.*;
class AnalogClock extends Applet implements Runnable
{
int width, height;
Thread t = null;
boolean threadSuspended;
int hours = 0, minutes = 0, seconds = 0;
String timeString = "";
public void init()
{
width = getSize().width;
height = getSize().height;
setBackground(Color.CYAN);
}
public void start()
{
if (t == null)
{
t = new Thread(this);
t.setPriority(Thread.MIN_PRIORITY);
threadSuspended = false;
t.start();
}
else
{
if (threadSuspended)
{
threadSuspended = false;
synchronized (this)
{
notify();
}
}
}
}
public void stop()
{
threadSuspended = true;
}
public void run()
{
try
{
while (true)
{
Calendar cal = Calendar.getInstance();
hours = cal.get(Calendar.HOUR_OF_DAY);
if (hours > 12)
hours -= 12;
minutes = cal.get(Calendar.MINUTE);
seconds = cal.get(Calendar.SECOND);
SimpleDateFormat formatter
= new SimpleDateFormat("hh:mm:ss", Locale.getDefault());
Date date = cal.getTime();
timeString = formatter.format(date);
// Now the thread checks to see if it should suspend itself
if (threadSuspended)
{
synchronized (this)
{
while (threadSuspended)
{
wait();
}
}
}
repaint();
t.sleep(1000); // interval specified in milliseconds
}
}
catch (Exception e)
{
}
}
void drawHand(double angle, int radius, Graphics g)
{
angle -= 0.5 * Math.PI;
int x = (int) (radius * Math.cos(angle));
int y = (int) (radius * Math.sin(angle));
g.drawLine(width / 2, height / 2, width / 2 + x, height / 2 + y);
}
void drawWedge(double angle, int radius, Graphics g)
{
angle -= 0.5 * Math.PI;
int x = (int) (radius * Math.cos(angle));
int y = (int) (radius * Math.sin(angle));
angle += 2 * Math.PI / 3;
int x2 = (int) (5 * Math.cos(angle));
int y2 = (int) (5 * Math.sin(angle));
angle += 2 * Math.PI / 3;
int x3 = (int) (5 * Math.cos(angle));
int y3 = (int) (5 * Math.sin(angle));
g.drawLine(width / 2 + x2, height / 2 + y2, width / 2 + x, height / 2 + y);
g.drawLine(width / 2 + x3, height / 2 + y3, width / 2 + x, height / 2 + y);
g.drawLine(width / 2 + x2, height / 2 + y2, width / 2 + x3, height / 2 + y3);
}
public void paint(Graphics g)
{
g.setColor(Color.RED);
drawWedge(2 * Math.PI * hours / 12, width / 5, g);
drawWedge(2 * Math.PI * minutes / 60, width / 3, g);
drawHand(2 * Math.PI * seconds / 60, width / 2, g);
g.setColor(Color.BLACK);
g.drawString(timeString, 10, height - 10);
}
}
/*
<html>
<body>
<applet code="AnalogClock.class" width="315" height="300">
</applet>
</body>
</html> */
Learn coding.
Buy coding book
Please click here-click here