`
fffddgx
  • 浏览: 38618 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java awt 模拟钟表

    博客分类:
  • J2SE
阅读更多
import java.awt.BasicStroke;
import java.awt.geom.Ellipse2D;
import java.text.SimpleDateFormat;
import java.util.Locale;

public class run extends javax.swing.JFrame {

	// 定义一Graphics变量,用来画分针、秒针、时针等
	private java.awt.Graphics g;

	// 定义一个图片变量来存背景图片
	private java.awt.Image backGround;

	// 定义一个X,Y,分别表示钟表中心的坐标
	// R表示秒针的半径
	private int X = 300, Y = 300, R = 160;
	// 分别定义分针、秒针、时针的X、Y坐标
	private int X_HOUR, X_MINUTE, X_SECOND;
	private int Y_HOUR, Y_MINUTE, Y_SECOND;

	public void loadBackground() {
		this.setTitle("小钟表");
		this.setSize(600, 600);
		// 改其属性为不可变大小
		this.setResizable(false);
		// 设置其为关闭后退出
		this.setDefaultCloseOperation(3);
		// 设置其为可见
		this.setVisible(true);
		// 定义画布对象
		g = this.getGraphics();
		this.setBackground(java.awt.Color.white);
	}

	public void miaoMove(java.util.Date d) {
		// 将g包装成一个graphics2D
		java.awt.Graphics2D g2 = (java.awt.Graphics2D) g;
		// 将其颜色设置成为红
		g2.setColor(java.awt.Color.RED);
		// 计算 X_SECOND, Y_SECOND
		X_SECOND = (int) (X + R
				* Math.cos(d.getSeconds() * 2 * Math.PI / 60 - Math.PI / 2));
		Y_SECOND = (int) (Y + R
				* Math.sin(d.getSeconds() * 2 * Math.PI / 60 - Math.PI / 2));
		g2.setStroke(new BasicStroke(1));
		g2.drawLine(X, Y, X_SECOND, Y_SECOND);

	}

	public void fenMove(java.util.Date d) {
		java.awt.Graphics2D g2 = (java.awt.Graphics2D) g;
		g2.setColor(java.awt.Color.BLUE);
		X_MINUTE = (int) (X + (R * 0.8)
				* Math.cos(d.getMinutes() * 2 * Math.PI / 60 - Math.PI / 2));
		Y_MINUTE = (int) (Y + (R * 0.8)
				* Math.sin(d.getMinutes() * 2 * Math.PI / 60 - Math.PI / 2));
		g2.setStroke(new BasicStroke(5));
		g2.drawLine(X, Y, X_MINUTE, Y_MINUTE);

	}
	public void shiMove(java.util.Date d) {
		java.awt.Graphics2D g2 = (java.awt.Graphics2D) g;
		g2.setColor(java.awt.Color.BLACK);
		X_HOUR = (int) (X + (R * 0.5)
				* Math.cos(d.getHours() * 2 * Math.PI / 12 + d.getMinutes() * 2
						* Math.PI / (60 * 12) - Math.PI / 2));
		Y_HOUR = (int) (Y + (R * 0.5)
				* Math.sin(d.getHours() * 2 * Math.PI / 12 + d.getMinutes() * 2
						* Math.PI / (60 * 12) - Math.PI / 2));
		g2.setStroke(new BasicStroke(5));
		g2.drawLine(X, Y, X_HOUR, Y_HOUR);
	}

	public void miaoMove2(java.util.Date d) {
		java.awt.Graphics2D g2 = (java.awt.Graphics2D) g;
		g2.setColor(java.awt.Color.WHITE);
		X_SECOND = (int) (X + R
				* Math.cos(d.getSeconds() * 2 * Math.PI / 60 - Math.PI / 2));
		Y_SECOND = (int) (Y + R
				* Math.sin(d.getSeconds() * 2 * Math.PI / 60 - Math.PI / 2));
		g2.setStroke(new BasicStroke(1));
		g2.drawLine(X, Y, X_SECOND, Y_SECOND);

	}

	public void fenMove2(java.util.Date d) {
		java.awt.Graphics2D g2 = (java.awt.Graphics2D) g;
		g2.setColor(java.awt.Color.WHITE);
		X_MINUTE = (int) (X + (R * 0.8)
				* Math.cos(d.getMinutes() * 2 * Math.PI / 60 - Math.PI / 2));
		Y_MINUTE = (int) (Y + (R * 0.8)
				* Math.sin(d.getMinutes() * 2 * Math.PI / 60 - Math.PI / 2));
		g2.setStroke(new BasicStroke(5));
		g2.drawLine(X, Y, X_MINUTE, Y_MINUTE);

	}

	public void shiMove2(java.util.Date d) {
		java.awt.Graphics2D g2 = (java.awt.Graphics2D) g;
		g2.setColor(java.awt.Color.WHITE);
		X_HOUR = (int) (X + (R * 0.5)
				* Math.cos(d.getHours() * 2 * Math.PI / 12 + d.getMinutes() * 2
						* Math.PI / (60 * 12) - Math.PI / 2));
		Y_HOUR = (int) (Y + (R * 0.5)
				* Math.sin(d.getHours() * 2 * Math.PI / 12 + d.getMinutes() * 2
						* Math.PI / (60 * 12) - Math.PI / 2));
		g2.setStroke(new BasicStroke(5));
		g2.drawLine(X, Y, X_HOUR, Y_HOUR);
	}
	public void paint(java.awt.Graphics g) {
		super.paint(g);
		g.drawImage(backGround, 0, 0, 600, 600, null);
	}
	public void showData(java.util.Date d) {
		SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss",
				Locale.CHINA);
		String result = f.format(d);
		java.awt.Graphics2D g2 = (java.awt.Graphics2D) g;
		g2.setColor(java.awt.Color.darkGray);
		g2.drawString(result, 220, 580);
	}

	public void showData2(java.util.Date d) {
		SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss",
				Locale.CHINA);
		String result = f.format(d);
		java.awt.Graphics2D g2 = (java.awt.Graphics2D) g;
		g2.setColor(java.awt.Color.white);
		g2.drawString(result, 220, 580);
	}

	public void drawFram() {
		java.awt.Graphics2D g2 = (java.awt.Graphics2D) g;
		g2.setColor(java.awt.Color.BLACK);
		g2.setStroke(new BasicStroke(2));
		Ellipse2D circle = new Ellipse2D.Double();
		circle.setFrameFromCenter(X, Y, X + R, Y + R);// 设置椭圆中点及a,b
		g2.draw(circle);
		int r;
		for (int i = 0; i < 61; i += 5) {
			if ((i % 10) == 5) {
				r = 4;
				g2.setColor(java.awt.Color.BLUE);
			} else {
				r = 6;
				g2.setColor(java.awt.Color.RED);
			}
			int X_PIONT = (int) (X + R
					* Math.cos(i * 2 * Math.PI / 60 - Math.PI / 2));
			int Y_PIONT = (int) (Y + R
					* Math.sin(i * 2 * Math.PI / 60 - Math.PI / 2));
			Ellipse2D circle_point = new Ellipse2D.Double();
			circle_point.setFrameFromCenter(X_PIONT, Y_PIONT, X_PIONT + r,
					Y_PIONT + r);
			g2.draw(circle_point);
			g2.fill(circle_point);
		}
	}

	public static void main(String[] args) {
		java.util.Date d = new java.util.Date();
		run biaoRun = new run();
		biaoRun.loadBackground();
		while (true) {
			biaoRun.showData(d);
			biaoRun.shiMove(d);
			biaoRun.fenMove(d);
			biaoRun.miaoMove(d);

			try {
				Thread.sleep(1000);
			} catch (Exception ef) {
				ef.printStackTrace();
			}
			biaoRun.shiMove2(d);
			biaoRun.fenMove2(d);
			biaoRun.miaoMove2(d);
			biaoRun.showData2(d);
			biaoRun.drawFram();
			d = new java.util.Date();
		}

	}
}

 注部分参考别人代码,修改完成。

分享到:
评论

相关推荐

    awt包java Android

    awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android awt包java Android ...

    JAVA AWT学习手册

    AWT(Abstract Window Toolkit),即抽象窗口工具包,是Java API为Java程序提供的建立图形用户界面的基本工具集,AWT可以用于Java Application和Java Applet的图形用户界面的创建。 AWT工具集简介 AWT工具集是Java ...

    Java的AWT包.pdf

    Java的Abstract Window Toolkit(AWT)包是Java标准版(Java SE)的一部分,它提供了一组基本的组件和接口,用于创建图形用户界面(GUI)。在Java编程中,如果你需要开发带有窗口、按钮、文本框等元素的应用程序,AWT就是...

    Java AWT组件综合练习

    Java AWT(Abstract Window Toolkit)是Java早期的图形用户界面(GUI)库,它提供了创建和管理窗口、按钮、文本区域等元素的基本组件。在Java AWT中,开发者可以构建丰富的交互式应用程序。本综合练习旨在帮助你深入...

    awt.rar_awt_java awt_java 画图

    Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,它为开发者提供了创建和管理窗口、按钮、文本框等组件的基本功能。在Java中,AWT是 Swing 的基础,虽然现在Swing更常用,但AWT仍然...

    java awt应用控件

    Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,它提供了构建和控制GUI应用程序的基本组件。AWT组件是Java语言中的原始GUI元素,包括按钮、文本框、滚动条等。这些组件使得开发者...

    java awt 事件处理

    Java AWT(Abstract Window Toolkit)事件处理是Java GUI编程中的核心组成部分,它允许用户与图形用户界面中的组件进行交互。在Java中,事件处理主要涉及事件源、事件、事件监听器和事件处理方法这四个关键概念。 ...

    awt.rar_awt_java awt_java绘图

    Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,它为开发者提供了构建桌面应用程序的基本组件,如按钮、文本框、菜单等,以及用于在屏幕上绘制图形的能力。这个"awt.rar"压缩包...

    java模拟键盘鼠标

    以上就是关于"java模拟键盘鼠标"这个项目的主要知识点。在实际开发中,需要注意模拟操作的准确性和效率,以及避免过于频繁的操作导致账号被系统识别为异常。同时,尊重他人的隐私和使用条款,确保这种技术的合法和...

    java的awt计算器

    ### Java AWT 计算器知识点详解 #### 一、项目概述 本项目是一个使用Java AWT库构建的简易图形界面计算器。AWT(Abstract Window Toolkit)是Java平台早期提供的用于创建GUI应用程序的一套API。它允许开发者创建...

    弹球游戏 JavaAWT制作

    在本项目"弹球游戏 JavaAWT制作"中,开发者运用了Java的图形用户界面(GUI)库JavaAWT来创建一个互动的弹球游戏。JavaAWT是Java早期提供的用于构建桌面应用的基础组件,它提供了丰富的控件、布局管理和事件处理机制...

    java awt记事本

    Java AWT(Abstract Window Toolkit)是Java平台早期提供的图形用户界面(GUI)工具包,用于创建和管理窗口、按钮、文本框等组件。在“java awt记事本”项目中,开发者用AWT库构建了一个类似Windows XP记事本的应用...

    Java AWT应用示例 - 持续更新

    Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,它提供了创建和管理窗口、按钮、文本框等组件的基本功能。本教程将深入探讨AWT库,通过实例来帮助理解其核心概念和用法。由于没有...

    java AWT实现简单画图器(可打开、保存、清除界面、选择颜色等)

    Java AWT库是Java平台标准版(Java SE)的一部分,用于构建图形用户界面(GUI)。在本项目中,我们利用AWT(Abstract Window Toolkit)来创建一个简单的画图器,它具备基本的绘图功能,如绘制线条、圆形和矩形,并...

    Java AWT Reference

    ### Java AWT(Abstract Window Toolkit)详解:掌握Java图形用户界面设计的核心技能 #### 引言:Java AWT——构建用户界面的基石 在Java的世界里,Abstract Window Toolkit(AWT)扮演着至关重要的角色,它为Java...

    JAVA_CH.rar_java awt chm_java.awt.geom chm

    Java AWT(Abstract Window Toolkit)是Java平台的核心部分,它提供了创建和管理窗口以及与用户交互的基本组件。这个“JAVA_CH.rar”压缩包包含了关于Java AWT和`java.awt.geom`包的CHM(Compiled HTML Help)格式的...

    java 图形界面 java awt swt swing gui

    在Java中,有三个主要的GUI工具包:AWT(Abstract Window Toolkit),SWT(Standard Widget Toolkit)和Swing。 1. AWT(Abstract Window Toolkit): AWT是Java最早提供的GUI库,它是Java的基础GUI组件集合。AWT...

    嵌入式系统中Java AWT的实现.pdf

    "嵌入式系统中Java AWT的实现" 嵌入式系统中Java AWT的实现是指在嵌入式系统中使用Java语言和AWT(Abstract Window Toolkit)技术来实现图形用户界面。Java AWT是一种使用Java语言编写的图形用户界面库,提供了丰富...

Global site tag (gtag.js) - Google Analytics