`

java时钟

    博客分类:
  • java
 
阅读更多
package com.good.test;

import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class ClockPanel extends JPanel
{

	private static final long serialVersionUID = 4523747293746641642L;

	@Override
	public void paint(Graphics g)
	{
		super.paint(g);
		Graphics2D g2d = (Graphics2D) g;
		g2d.setStroke(new BasicStroke(3));
		g2d.drawOval(50, 50, 400, 400);// 圆点为(250,250)
		for (int i = 0; i < 60; i++)
		{
			int[] t = getPoint(i * 6, 200);
			int[] t1 = new int[2];
			if (i % 5 == 0)
			{
				if (i % 3 == 0)
				{
					g2d.setStroke(new BasicStroke(3));
					t1 = getPoint(i * 6, 180);
				} else
				{
					g2d.setStroke(new BasicStroke(2));
					t1 = getPoint(i * 6, 190);
				}
			} else
			{
				g2d.setStroke(new BasicStroke(1));
				t1 = getPoint(i * 6, 195);
			}
			g2d.drawLine(t[0], t[1], t1[0], t1[1]);
		}
		Date d = new Date();
		int h = d.getHours();
		int m = d.getMinutes();
		int s = d.getSeconds();

		double arc_s = s * 6 + 90;
		double arc_m = (m + s / 60.0) * 6 + 90;
		double arc_h = 0;
		if (h > 12)
			h = h - 12;
		arc_h = (h + m / 60.0) * 30 + 90;
		int[] st = getPoint(arc_s, 160);
		int[] mt = getPoint(arc_m, 130);
		int[] ht = getPoint(arc_h, 90);

		g2d.setStroke(new BasicStroke(1));
		g2d.setColor(Color.BLACK);
		g2d.drawLine(250, 250, st[0], st[1]);

		g2d.setStroke(new BasicStroke(2));
		g2d.setColor(Color.RED);
		g2d.drawLine(250, 250, mt[0], mt[1]);

		g2d.setStroke(new BasicStroke(3));
		g2d.setColor(Color.BLUE);
		g2d.drawLine(250, 250, ht[0], ht[1]);

		g2d.setColor(Color.RED);
		Font font = new Font("新宋体", Font.BOLD, 17);
		g2d.setFont(font);
		g2d.drawString("Hour: " + h + " Minute: " + m + " Second: " + s, 150,
				500);

	}

	public int[] getPoint(double arc, int r)
	{
		double sin = Math.sin(Math.toRadians(arc));
		double cos = Math.cos(Math.toRadians(arc));
		return new int[]
		{ (int) (250 - r * cos), (int) (250 - r * sin) };
	}

	public static void main(String[] args)
	{
		final JFrame frame = new JFrame();
		frame.add(new ClockPanel(), BorderLayout.CENTER);
		frame.setTitle("Clock!");
		frame.setSize(600, 600);
		frame.setLocation(100, 100);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		frame.setVisible(true);
		new Thread(new Runnable()
		{
			@Override
			public void run()
			{
				while (true)
				{
					frame.repaint();
					try
					{
						Thread.currentThread().sleep(1000);
					} catch (InterruptedException e)
					{
						e.printStackTrace();
					}
				}
			}

		}).start();
	}

}

 

分享到:
评论

相关推荐

    JAVA时钟 源代码

    JAVA时钟 源代码

    java 时钟源码 java 时钟源码

    在阅读或编写Java时钟源码时,应重点理解这些类的用法和它们之间的关系,以及如何根据业务需求选择合适的时间模型。此外,注意避免使用过时的`Date`和`Calendar`类,因为它们的API设计复杂且易出错。

    Java时钟小程序

    Java时钟小程序是一种基于Java编程语言开发的应用程序,它的主要功能是实时显示当前的系统时间。这个小程序在设计上利用了Java丰富的API和面向对象的特性,为用户提供了一个直观、简洁的时间显示界面。 首先,我们...

    Java时钟程序源代码

    Java时钟程序是一种基于Java编程语言实现的模拟时钟应用,它可以实时显示当前时间,并通常在GUI(图形用户界面)上以数字或指针形式展示。这个程序利用了Java的多线程特性,特别是`Thread`类或者`...

    java时钟代码及报告

    Java时钟代码设计涉及到多个Java核心技术,包括GUI(图形用户界面)、多线程、音频处理以及动画效果。在这个课程设计中,学生王健的目标是创建一个具有模拟钟表和数字钟表功能的Java程序,该程序能够根据电脑时间...

    Java时钟程序(绘制了一个带时针 分针 秒针的仿真时钟)

    Java时钟程序是一种基于Java编程语言实现的模拟真实时钟的应用。这个程序通过绘制时针、分针和秒针来实时显示当前的时间。在Java中,实现这样的功能涉及到多个核心概念和技术,包括对象继承、多线程、图形用户界面...

    JAVA时钟小应用程序

    JAVA时钟小应用程序 代码片段 { Thread 时针=null, 分针=null,秒针=null; //用来表示时针、分针和秒针的线程。 //表示时针、分针、秒针端点的整型变量: int hour_a,hour_b,munite_a,munite_b,second_a,...

    java时钟java。java

    在Java编程语言中,"java时钟java.java"可能是一个示例程序,用于演示如何在Java中创建和使用时钟。作为一个初学者,你可能会对以下几个关键知识点感兴趣: 1. **Java时间日期API**:在Java 8之前,Java使用`java....

    嵌入网页的Java时钟(Applet)

    总的来说,这个Java时钟Applet展示了早期Java在网络应用中的能力,同时也提醒我们技术的不断演进。虽然现在Applet已不再是主流,但它在Java历史中的地位不可忽视,对于学习Java和Web开发的历史有着重要的参考价值。

    java时钟设计

    这个Java时钟设计案例涉及到多个关键概念和编程技巧,包括事件处理、图形绘制、定时器使用以及日期时间的操作。 ### Java时钟设计的关键知识点 #### 1. Swing组件的使用 Swing是Java中的一个用于构建图形用户界面...

    JAVA动态效果(1)表格时钟.rar_JAVA时钟_java 时钟_表格

    这个“JAVA动态效果(1)表格时钟.rar”压缩包包含了一个实现Java时钟功能的示例,让我们深入探讨相关的知识点。 首先,Java时钟的实现通常基于`java.util.Timer`类或`java.time`包中的类。在这个项目中,开发者...

    Clock_java.rar_JAVA时钟_clock_clock ja_时钟_时钟 java

    "JAVA时钟_clock_clock ja_时钟_时钟 java" 这部分标题进一步强调了这个项目是关于Java时钟的实现,可能包含多种不同的时钟显示方式或特性,而且可能是针对初级或中级Java开发者设计的。 【描述】描述中提到这是一...

    java时钟java时钟.doc

    Java时钟动画设计报告 本报告介绍了一种使用Java技术设计的时钟动画,旨在展示Java技术的应用和实现时钟动画的可能性。通过对Java技术的介绍和编程环境的设置,设计了一个基本的时钟动画,实现了时钟的基本功能。 ...

    java时钟_表盘数字

    在Java编程语言中,创建一个时钟应用是一个常见的练习,它可以增强开发者对图形用户界面(GUI)和时间处理的理解。本项目将时钟分为两个部分:指针时钟(模拟时钟)和数字时钟,两者同时显示系统时间,提供了一种...

    java时钟程序

    总的来说,这个"java时钟程序"涵盖了Java GUI编程的核心概念,包括图形界面设计、时间日期处理、事件监听和多线程。通过学习和理解这个项目,开发者可以提升在这些领域的技能,并能够创建出更多复杂且用户友好的桌面...

    一个小的java时钟程序

    以上就是关于“一个小的Java时钟程序”的核心知识点,涵盖了GUI设计、多线程、日期时间处理以及事件驱动编程等方面。通过这样的实践项目,开发者可以提升自己的Java技能,并对如何构建桌面应用程序有更深入的理解。

    java 时钟

    Java 时钟是一种基于Java编程...通过以上知识点的综合运用,我们可以构建出一个功能齐全、稳定可靠的Java时钟程序。无论是用于学习Java编程,还是实际项目开发,这个案例都能帮助我们深入理解和应用Java的相关技术。

Global site tag (gtag.js) - Google Analytics