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

📄 myclock.java

📁 java GUI使用实现的日历
💻 JAVA
字号:
package MyCalender;/* * Copyright (c) 2003 Sun Microsystems, Inc. All  Rights Reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * -Redistributions of source code must retain the above copyright *  notice, this list of conditions and the following disclaimer. *  * -Redistribution in binary form must reproduct the above copyright *  notice, this list of conditions and the following disclaimer in *  the documentation and/or other materials provided with the distribution. *  * Neither the name of Sun Microsystems, Inc. or the names of contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. *  * This software is provided "AS IS," without a warranty of any kind. ALL * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT * BE LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT * OF OR RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR ITS * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN * IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. *  * You acknowledge that Software is not designed, licensed or intended for * use in the design, construction, operation or maintenance of any nuclear * facility. *//* * @(#)Clock.java	1.12 03/01/23 */import java.util.*;import javax.swing.JButton;import java.awt.*;import java.awt.Color;import java.applet.*;import java.text.*;import javax.swing.JPanel;import javax.swing.JSpinner;/** * Time! *  * @author 邱鹏 * @verson 1.0 * @date:2008年4月2日 *****类的作用:绘制时钟****** */public class MyClock extends JPanel 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; // 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 MyClock() {		super();		setLayout(null);		init();		start();	}	// --------------------------------------------------------------------------------------------	public void init() {		int x, y;		lastxs = lastys = lastxm = lastym = lastxh = lastyh = 0;		formatter = new SimpleDateFormat("EEE MMM dd hh:mm:ss yyyy", Locale				.getDefault());		currentDate = new Date();		lastdate = formatter.format(currentDate);		clockFaceFont = new Font("Serif", Font.PLAIN, 14);		handColor = Color.blue;		numberColor = Color.darkGray;		this.setBackground(new Color(128, 128, 192));		resize(300, 300); // Set clock window size	}	// --------------------------------------------------------------------------------------------	// Paint is the main part of the program	public void paint(Graphics g) {		// g.clearRect(0,0,this.getWidth(),this.getHeight());		paintMe(g);		int xh, yh, xm, ym, xs, ys;		int s = 0, m = 10, h = 10;		String today;		Calendar c = Calendar.getInstance();		currentDate = new Date();		s = c.get(Calendar.SECOND);		m = c.get(Calendar.MINUTE);		h = c.get(Calendar.HOUR);		// 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.applyPattern("EEE MMM dd HH:mm:ss yyyy");		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, 140, 50);		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;	}	// --------------------------------------------------------------------------------------------	public void paintMe(Graphics g) {		g.clearRect(0, 0, this.getWidth(), this.getHeight());		g.setFont(clockFaceFont);		// 绘制圆形和数字		g.setColor(Color.WHITE);		g.fillOval(xcenter - 50, ycenter, 9, 3);		g.fillOval( xcenter + 40, ycenter,9,3);		g.fillOval(xcenter  , ycenter - 44,3,9);		g.fillOval( xcenter , ycenter + 42,3,9);						g.setColor(handColor);		g.drawArc(xcenter - 50, ycenter - 50, 100, 100, 0, 360);		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();			update(this.getGraphics());		}	}	// --------------------------------------------------------------------------------------------}

⌨️ 快捷键说明

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