import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Clock1 extends JFrame implements Runnable {
private static final long serialVersionUID = 1L;
public Clock1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
Thread thread1; // 定义线程对象
Color handColor; // 定义表示时针、分针和秒针颜色的变量
Color numberColor; // 定义表示时钟数字颜色的变量
JLabel jLabel1 = new JLabel();
public void init() {
int x, y;
handColor = Color.blue;
numberColor = Color.darkGray;
setBackground(Color.white);
}
// paint is the main part of the program
public void paint(Graphics g) {
int xh, yh, xm, ym, xs, ys, s = 0, m = 10, h = 0, xpoint, ypoint;
int day, month, year, weekday;
Calendar c1 = Calendar.getInstance();
// 获得当前时间
s = c1.get(Calendar.SECOND);
m = c1.get(Calendar.MINUTE);
h = c1.get(Calendar.HOUR_OF_DAY);
// 获得当前日期
day = c1.get(Calendar.DATE);
month = c1.get(Calendar.MONTH) + 1;
year = c1.get(Calendar.YEAR);
weekday = c1.get(Calendar.DAY_OF_WEEK) - 1;
// 在标签控件上显示日期和时间
jLabel1.setText(" " + year + "年" + month + "月" + day + "日" + " " + "星期" + weekday + " " + h + ":" + m + ":" + s);
xpoint = 130;
ypoint = 100;
// 计算时针、分针和秒针的位置
xs = (int) (Math.cos(s * 3.14f / 30 - 3.14f / 2) * 45 + xpoint);
ys = (int) (Math.sin(s * 3.14f / 30 - 3.14f / 2) * 45 + ypoint);
xm = (int) (Math.cos(m * 3.14f / 30 - 3.14f / 2) * 40 + xpoint);
ym = (int) (Math.sin(m * 3.14f / 30 - 3.14f / 2) * 40 + ypoint);
xh = (int) (Math.cos((h * 30 + m / 2) * 3.14f / 180 - 3.14f / 2) * 30 + xpoint);
yh = (int) (Math.sin((h * 30 + m / 2) * 3.14f / 180 - 3.14f / 2) * 30 + ypoint);
// 绘制时钟背景
g.setColor(handColor);
g.clearRect(0, 0, 260, 200);
g.drawOval(xpoint / 2 + 10, ypoint / 2 - 5, 110, 110);
g.setColor(numberColor);
g.drawString("9", xpoint - 45, ypoint + 3);
g.drawString("3", xpoint + 40, ypoint + 3);
g.drawString("12", xpoint - 5, ypoint - 37);
g.drawString("6", xpoint - 3, ypoint + 45);
g.setColor(getBackground());
g.setColor(numberColor);
g.drawString("", 5, 125);
// 绘制时针、分针和秒针
g.drawLine(xpoint, ypoint, xs, ys);
g.setColor(handColor);
g.drawLine(xpoint, ypoint, xm, ym);
g.drawLine(xpoint, ypoint, xh, yh);
}
// 定义线程的run方法
public void run() {
Thread me = Thread.currentThread();
while (thread1 == me) {
try {
Thread.currentThread().sleep(100);
}
catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
}
// 开始执行线程
public void start() {
thread1 = new Thread(this);
thread1.start();
}
// 停止线程
public void stop() {
thread1 = null;
}
public void update(Graphics g) {
paint(g);
}
private void jbInit() throws Exception {
this.getContentPane().add(jLabel1, BorderLayout.SOUTH);
}
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
public static void main(String[] args) {
Clock1 clock1 = new Clock1();
clock1.init();
clock1.start();
clock1.setSize(280, 230);
clock1.setResizable(false);
clock1.setVisible(true);
}
}
// 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ming0630/archive/2006/04/29/696394.aspx
分享到:
相关推荐
在这个“Java简单时钟(AWT)”的例子中,我们将深入探讨这两个库在构建一个模拟石英钟的应用中的应用,同时还会涉及到系统托盘功能的实现。 **AWT与Swing** AWT是Java的原始GUI库,它提供了基本的窗口组件,如按钮...
setTitle("Java时钟"); setSize(200, 100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); // 创建时钟标签 JLabel clockLabel = new JLabel("00:00:00"); clockLabel....
以上代码展示了如何创建一个简单的Java动态时钟。在这个例子中,我们创建了一个`ClockPanel`类,其中包含了定时器和绘图逻辑。在主程序中,我们创建了一个`JFrame`并添加了`ClockPanel`实例。这样,当程序运行时,就...
在这个实验中,我们将深入探讨如何创建一个能够实时显示当前时间的Java时钟应用。 首先,让我们讨论Java中的线程。在时钟应用中,我们需要一个独立的线程来不断地更新时间,以免阻塞主线程(通常是负责用户界面的...
综上所述,"java实现时钟"这个项目涵盖了Java GUI编程、图形绘制、线程处理、时间日期操作等多个核心领域,是学习和实践Java技术的好例子。通过这个项目,开发者可以深入理解Java的多线程、图形用户界面设计以及时间...
总的来说,这个Java时钟Applet展示了早期Java在网络应用中的能力,同时也提醒我们技术的不断演进。虽然现在Applet已不再是主流,但它在Java历史中的地位不可忽视,对于学习Java和Web开发的历史有着重要的参考价值。
这个简单的Java程序创建了一个数字时钟,每秒自动更新一次时间。时钟以24小时格式显示小时、分钟和秒。通过`TimerTask`和`Timer`,我们可以定期执行特定任务,例如在这个例子中,是更新时钟显示。`JLabel`的文本颜色...
Java GUI时钟程序是利用Java Swing或JavaFX库来创建一个图形用户界面,展示实时时钟的应用。在Java中,我们可以构建这样的程序来提供可视化的时间显示,这在教学、小型项目或者作为桌面小工具时非常实用。下面我们将...
这个Java程序是一个简单的时钟应用,它利用了Java Swing库来创建一个图形用户界面(GUI),并在界面上绘制了一个模拟时钟。时钟包括时针、分针和秒针,可以实时更新显示当前的时间。下面将详细介绍这个程序的主要...
总的来说,这个Java时钟程序结合了Applet、多线程以及GUI设计,为初学者提供了一个实践Java基础知识的好例子。通过学习和理解这个程序,开发者可以深入了解Java GUI编程、事件处理以及线程管理等核心概念。
本教程将深入探讨一个基于Java编写的时钟程序,它可以帮助初学者理解如何在Java中处理时间并创建实时更新的时钟界面。 首先,Java中的`java.time`包提供了丰富的类来处理日期、时间和时区。在这个时钟程序中,主要...
Java编写的时钟程序是一个...总的来说,这个"java写的时钟"程序是学习Java编程、线程和时间日期API处理的好例子。通过理解并实现这样的程序,开发者可以深化对Java核心概念的理解,并掌握如何构建实时更新的应用程序。
在这个例子中,`paint()`方法会画出时钟的指针和数字。 - `stop()`:当applet不再可见或者浏览器离开包含applet的页面时调用,停止applet的运行循环。 3. **`Clock.java`文件分析**: - 这个文件很可能是实现时钟...
Java awt示例程序:简易小时钟,代码的注释很丰富哦,只有一个java文件。Thread 时针=null, 分针=null,秒针=null; //用来表示时针、分针和秒针的线程。 //表示时针、分针、秒针端点的整型变量: int hour_a,...
这个Java时钟设计案例涉及到多个关键概念和编程技巧,包括事件处理、图形绘制、定时器使用以及日期时间的操作。 ### Java时钟设计的关键知识点 #### 1. Swing组件的使用 Swing是Java中的一个用于构建图形用户界面...
这个简单的数字时钟程序虽然小巧,但它整合了Java编程中的多个重要概念,对于初学者来说是一个很好的实践项目。通过这个项目,开发者不仅可以学习到Java的基础知识,还能了解到如何构建GUI程序以及如何处理多线程,...
Java时钟程序是一个基于GUI(图形用户界面)的简单应用,它使用了Java Swing库来构建界面,并通过多线程技术实现动态显示时间更新。在这个程序中,我们有两个主要的组件:一个显示数字时间的按钮和两个面板,分别...
在这个"java AWT 时钟"的例子中,我们将深入探讨如何使用AWT来创建一个简单的数字时钟。 首先,让我们了解一下AWT中的关键组件。在AWT中,`Frame`类代表了一个窗口,它是所有顶级容器的基础。在这个时钟示例中,`...
这个Java时钟小程序不仅展示了如何使用Swing和AWT来创建一个简单的图形用户界面,还涉及到了定时器、数学计算等方面的知识。通过这个例子,学习者可以更好地理解如何在Java中进行图形界面开发以及相关的数学计算。
【标题】"我的时钟(小例子)"是一款简单的应用,旨在展示如何在编程环境中实现一个功能齐全的时钟,能够实时显示当前的时间和日期。这个应用可能是一个初学者项目,用于学习基本的用户界面设计和时间处理技术。 在...