// P1003.java:$B;~7W(B

package applet;

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import Glib.*;

public class P1003 extends xApplet
	implements Runnable,ActionListener
{	JButton bt0,bt1;
	Thread th=null;
	TimeZone tz=TimeZone.getTimeZone("JST");
	xGraphics G;
	int r=240;
	int ang_hr_old,ang_min_old,ang_sec_old,flag=0;

	public void init()
	{	app_init(0);
		Container cp=getContentPane();
		cp.setBackground(getBackground());
		cp.setLayout(new FlowLayout(FlowLayout.LEFT));
		bt0=new JButton("Start");
		bt0.addActionListener(this);
		cp.add(bt0);
 		bt1=new JButton("Exit");
		bt1.addActionListener(this);
		cp.add(bt1);
		G=new xGraphics(getGraphics());
		G.set0(CA,1);
	}

	public void actionPerformed(ActionEvent evt)
	{	if(evt.getSource()==bt0)
		{	if(th==null)
			{	th=new Thread(this);
				th.start();
			}
		}
		if(evt.getSource()==bt1)
			System.exit(0);
	}

	public void start(){}

	public void stop()
	{	if(th!=null)
			th=null;
	}

	public void run()
	{	G.fcircle(P0,xMath.fint(0.04*r),7);
		for(int i=1;i<=12;i++)
		{	int x=xMath.fint(0.9*r*Math.cos((30*i-90)*Math.PI/180));
			int y=xMath.fint(0.9*r*Math.sin((30*i+90)*Math.PI/180));
			if(i%3==0)
				G.fcircle(x,y,xMath.fint(0.08*r),7);
			else
				G.fcircle(x,y,xMath.fint(0.04*r),7);
		}
	 	Thread th0=Thread.currentThread();
		while(th==th0)
		{	paint2();
			try
			{	th.sleep(1000);
			}
			catch(InterruptedException e){}
		}
	}

	public void paint2()
	{	Calendar cl=Calendar.getInstance(tz);
		int ang;
		int hr=cl.get(Calendar.HOUR_OF_DAY);
		int min=cl.get(Calendar.MINUTE);
		int sec=cl.get(Calendar.SECOND);
		drawhand(ang_hr_old,xMath.fint(0.6*r),12,0);
		drawhand(ang_min_old,xMath.fint(0.7*r),6,0);
		drawhand(ang_sec_old,xMath.fint(0.8*r),3,0);
		ang=30*hr+min/2;
		drawhand(ang,xMath.fint(0.6*r),12,7);
		ang_hr_old=ang;
		ang=6*min+sec/10;
		drawhand(ang,xMath.fint(0.7*r),6,8);
		ang_min_old=ang;
		ang=6*sec;
		drawhand(ang,xMath.fint(0.8*r),3,15);
		ang_sec_old=ang;
	}

	private void drawhand(int ang,int leng,int da,int c)
	{	int[]x=new int[4];
		int[]y=new int[4];
		x[0]=xMath.fint(0.1*leng*Math.cos((ang-90)*Math.PI/180));
		y[0]=xMath.fint(0.1*leng*Math.sin((ang+90)*Math.PI/180));
		x[1]=xMath.fint(0.8*leng*Math.cos((ang-da-90)*Math.PI/180));
		y[1]=xMath.fint(0.8*leng*Math.sin((ang-da+90)*Math.PI/180));
		x[2]=xMath.fint(leng*Math.cos((ang-90)*Math.PI/180));
		y[2]=xMath.fint(leng*Math.sin((ang+90)*Math.PI/180));
		x[3]=xMath.fint(0.8*leng*Math.cos((ang+da-90)*Math.PI/180));
		y[3]=xMath.fint(0.8*leng*Math.sin((ang+da+90)*Math.PI/180));
		G.fpolygon(x,y,4,c);
	}
}

