⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 圆盘时钟.java

📁 个人开发的数字助理
💻 JAVA
字号:
package Default;/* * @(#)Clock.java 1.16 06/02/22 */import java.util.*;import java.awt.*;import java.applet.*;import java.text.*;import javax.swing.JPanel;/** * Time! *  * @author Rachel Gollub * @modified Daniel Peek replaced circle drawing calculation, few more changes */public class 圆盘时钟 extends Panel implements Runnable {	private volatile Thread		timer;		// The thread that displays clock	private int					lastxs, lastys, lastxm, lastym, lastxh, lastyh; // Dimensions																				// used																				// to																				// draw																				// hands	private SimpleDateFormat	formatter;										// Formats																				// the																				// date																				// displayed	private String				lastdate;										// String																				// to																				// hold																				// date																				// displayed	private Font				clockFaceFont;									// Font																				// for																				// number																				// display																				// on																				// clock	private Date				currentDate = new Date();								// Used																				// to																				// get																				// date																				// to																				// display	private Color				handColor;										// Color																				// of																				// main																				// hands																				// and																				// dial	private Color				numberColor;									// Color																				// of																				// second																				// hand																				// and																				// numbers	private int					xcenter	= 80, ycenter = 55;					// Center//	----------------------------------------------------------------------------------------------------------------------------------------																		// position	public 圆盘时钟()		{init();this.start();		}//	----------------------------------------------------------------------------------------------------------------------------------------	public void init() {		int x, y;		lastxs = lastys = lastxm = lastym = lastxh = lastyh = 0;		formatter = new SimpleDateFormat("yyyy年MM月dd日 kk时mm分ss秒", Locale				.getDefault());		currentDate = new Date();		lastdate = formatter.format(currentDate);		clockFaceFont = new Font("Serif", Font.PLAIN, 14);		handColor = Color.red;		numberColor = Color.darkGray;		resize(300, 300); // Set clock window size	}//	----------------------------------------------------------------------------------------------------------------------------------------	// Paint is the main part of the program	public void update(Graphics g) {		int xh, yh, xm, ym, xs, ys;		int s = 0, m = 10, h = 10;		String today;		currentDate = new Date();		formatter.applyPattern("s");		try			{				s = Integer.parseInt(formatter.format(currentDate));			} catch (NumberFormatException n)			{				s = 0;			}		formatter.applyPattern("m");		try			{				m = Integer.parseInt(formatter.format(currentDate));			} catch (NumberFormatException n)			{				m = 10;			}		formatter.applyPattern("h");		try			{				h = Integer.parseInt(formatter.format(currentDate));			} catch (NumberFormatException n)			{				h = 10;			}		// Set position of the ends of the hands		xs = (int) (Math.cos(s * Math.PI / 30 - Math.PI / 2) * 45 + xcenter);		ys = (int) (Math.sin(s * Math.PI / 30 - Math.PI / 2) * 45 + ycenter);		xm = (int) (Math.cos(m * Math.PI / 30 - Math.PI / 2) * 40 + xcenter);		ym = (int) (Math.sin(m * Math.PI / 30 - Math.PI / 2) * 40 + ycenter);		xh = (int) (Math.cos((h * 30 + m / 2) * Math.PI / 180 - Math.PI / 2) * 30 + xcenter);		yh = (int) (Math.sin((h * 30 + m / 2) * Math.PI / 180 - Math.PI / 2) * 30 + ycenter);		// Get the date to print at the bottom		formatter = new SimpleDateFormat("yyyy年MM月dd日 kk时mm分ss秒", Locale				.getDefault());		today = formatter.format(currentDate);		g.setFont(clockFaceFont);		// Erase if necessary		g.setColor(getBackground());		if (xs != lastxs || ys != lastys)			{				g.drawLine(xcenter, ycenter, lastxs, lastys);				g.drawString(lastdate, 5, 125);			}		if (xm != lastxm || ym != lastym)			{				g.drawLine(xcenter, ycenter - 1, lastxm, lastym);				g.drawLine(xcenter - 1, ycenter, lastxm, lastym);			}		if (xh != lastxh || yh != lastyh)			{				g.drawLine(xcenter, ycenter - 1, lastxh, lastyh);				g.drawLine(xcenter - 1, ycenter, lastxh, lastyh);			}		// Draw date and hands		g.setColor(numberColor);		g.drawString(today, 5, 125);		g.drawLine(xcenter, ycenter, xs, ys);		g.setColor(handColor);		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);		lastxs = xs;		lastys = ys;		lastxm = xm;		lastym = ym;		lastxh = xh;		lastyh = yh;		lastdate = today;		currentDate = new Date();	}//--------------------------------------------------------------------------------------------------------------------	public void paint(Graphics g) {		g.setFont(clockFaceFont);		//绘制时钟的圆圈和数字		g.setColor(Color.ORANGE);		g.drawArc(xcenter - 50, ycenter - 50, 100, 100, 0, 360);		g.setColor(Color.CYAN);		g.fillOval(xcenter-3, ycenter-3 , 6, 6);		g.setColor(numberColor);		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);		// Draw date and hands		g.setColor(numberColor);		g.drawString(lastdate, 5, 125);		g.drawLine(xcenter, ycenter, lastxs, lastys);		g.setColor(handColor);		g.drawLine(xcenter, ycenter - 1, lastxm, lastym);		g.drawLine(xcenter - 1, ycenter, lastxm, lastym);		g.drawLine(xcenter, ycenter - 1, lastxh, lastyh);		g.drawLine(xcenter - 1, ycenter, lastxh, lastyh);	}//----------------------------------------------------------------------------------------------------------------------------------------	public void start() {		timer = new Thread(this);		timer.start();	}//	----------------------------------------------------------------------------------------------------------------------------------------	public void stop() {		timer = null;	}//	----------------------------------------------------------------------------------------------------------------------------------------	public void run() {		Thread me = Thread.currentThread();		while (timer == me)			{				try					{						Thread.currentThread().sleep(100);					} catch (InterruptedException e)					{					}				repaint();			}	}//	----------------------------------------------------------------------------------------------------------------------------------------public String getNowTime(){	return  new SimpleDateFormat("yyyy年MM月dd日 kk时mm分", Locale			.getDefault()).format(currentDate);}}

⌨️ 快捷键说明

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