clock.java

来自「Java实现clock」· Java 代码 · 共 86 行

JAVA
86
字号
import java.applet.Applet;
import java.awt.*;
import java.util.*;

public class Clock extends Applet implements Runnable
{
	Thread thisThread;
	Color faceColor,borderColor,minuteColor,hourColor,secondColor;
	
	public void init()
	{
		faceColor = readColor (getParameter("faceCol"));
		borderColor = readColor (getParameter("borderCol"));
		minuteColor = readColor (getParameter("minuteCol"));
		hourColor = readColor (getParameter("hourCol"));
		secondColor = readColor (getParameter("secondCol"));
	}
	
	public Color readColor(String aColor)
	{
		if(aColor==null)
			return Color.black;
		
		int r,g,b;
		StringTokenizer st = new StringTokenizer(aColor,",");
		
		try
		{
			r = Integer.valueOf(st.nextToken()).intValue();
			g = Integer.valueOf(st.nextToken()).intValue();
			b = Integer.valueOf(st.nextToken()).intValue();
			return new Color(r,g,b);
		}
		catch (Exception e)
		{
			System.out.println("Error: "+e);
			return Color.black;
		}		
	}
	
	public void start()
	{
		thisThread = new Thread(this);
		thisThread.start();
	}
	
	public void run()
	{
		while(true)
		{
			repaint();
			try
			{
				thisThread.sleep(1000);
			}
			catch (Exception e){}
		}
	}
	
	public void update(Graphics g)
	{
		paint(g);
	}
	
	public void paint(Graphics g)
	{
		g.setColor(faceColor);
		g.fillOval(0,0,100,100);
		g.setColor(borderColor);
		g.drawOval(0,0,100,100);
		
		Calendar d = Calendar.getInstance();
		
		g.setColor(minuteColor);
		double angle = (((double)(90-d.get(Calendar.MINUTE)))/60)*2*Math.PI;
		g.drawLine(50,50,50+(int)(Math.sin(angle)*50),50+(int)(Math.cos(angle)*50));
		
		g.setColor(hourColor);
		angle = (((double)(18-d.get(Calendar.HOUR_OF_DAY)+(double)(Calendar.MINUTE)/60))/12)*2*Math.PI;
		g.drawLine(50,50,50+(int)(Math.sin(angle)*40),50+(int)(Math.cos(angle)*40));
		
		g.setColor(secondColor);
		angle = (((double)(90-d.get(Calendar.SECOND)))/60)*2*Math.PI;
		g.drawLine(50,50,50+(int)(Math.sin(angle)*50),50+(int)(Math.cos(angle)*50));
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?