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时钟源码时,应重点理解这些类的用法和它们之间的关系,以及如何根据业务需求选择合适的时间模型。此外,注意避免使用过时的`Date`和`Calendar`类,因为它们的API设计复杂且易出错。
Java时钟小程序是一种基于Java编程语言开发的应用程序,它的主要功能是实时显示当前的系统时间。这个小程序在设计上利用了Java丰富的API和面向对象的特性,为用户提供了一个直观、简洁的时间显示界面。 首先,我们...
Java时钟程序是一种基于Java编程语言实现的模拟时钟应用,它可以实时显示当前时间,并通常在GUI(图形用户界面)上以数字或指针形式展示。这个程序利用了Java的多线程特性,特别是`Thread`类或者`...
Java时钟代码设计涉及到多个Java核心技术,包括GUI(图形用户界面)、多线程、音频处理以及动画效果。在这个课程设计中,学生王健的目标是创建一个具有模拟钟表和数字钟表功能的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中创建和使用时钟。作为一个初学者,你可能会对以下几个关键知识点感兴趣: 1. **Java时间日期API**:在Java 8之前,Java使用`java....
总的来说,这个Java时钟Applet展示了早期Java在网络应用中的能力,同时也提醒我们技术的不断演进。虽然现在Applet已不再是主流,但它在Java历史中的地位不可忽视,对于学习Java和Web开发的历史有着重要的参考价值。
这个Java时钟设计案例涉及到多个关键概念和编程技巧,包括事件处理、图形绘制、定时器使用以及日期时间的操作。 ### Java时钟设计的关键知识点 #### 1. Swing组件的使用 Swing是Java中的一个用于构建图形用户界面...
这个“JAVA动态效果(1)表格时钟.rar”压缩包包含了一个实现Java时钟功能的示例,让我们深入探讨相关的知识点。 首先,Java时钟的实现通常基于`java.util.Timer`类或`java.time`包中的类。在这个项目中,开发者...
"JAVA时钟_clock_clock ja_时钟_时钟 java" 这部分标题进一步强调了这个项目是关于Java时钟的实现,可能包含多种不同的时钟显示方式或特性,而且可能是针对初级或中级Java开发者设计的。 【描述】描述中提到这是一...
Java时钟动画设计报告 本报告介绍了一种使用Java技术设计的时钟动画,旨在展示Java技术的应用和实现时钟动画的可能性。通过对Java技术的介绍和编程环境的设置,设计了一个基本的时钟动画,实现了时钟的基本功能。 ...
在Java编程语言中,创建一个时钟应用是一个常见的练习,它可以增强开发者对图形用户界面(GUI)和时间处理的理解。本项目将时钟分为两个部分:指针时钟(模拟时钟)和数字时钟,两者同时显示系统时间,提供了一种...
总的来说,这个"java时钟程序"涵盖了Java GUI编程的核心概念,包括图形界面设计、时间日期处理、事件监听和多线程。通过学习和理解这个项目,开发者可以提升在这些领域的技能,并能够创建出更多复杂且用户友好的桌面...
以上就是关于“一个小的Java时钟程序”的核心知识点,涵盖了GUI设计、多线程、日期时间处理以及事件驱动编程等方面。通过这样的实践项目,开发者可以提升自己的Java技能,并对如何构建桌面应用程序有更深入的理解。
Java 时钟是一种基于Java编程...通过以上知识点的综合运用,我们可以构建出一个功能齐全、稳定可靠的Java时钟程序。无论是用于学习Java编程,还是实际项目开发,这个案例都能帮助我们深入理解和应用Java的相关技术。