JAVA时钟



package TASK;

import java.awt.*;
import java.text.DateFormat;
import java.util.*;
import javax.swing.*;

//数字时钟
public class ClockDemo extends JFrame implements Runnable {
 Thread clock;
 final int Xpoint = 180;
 final int Ypoint = 180;
 final int R = 80;
 int xHour = 0, yHour = 0, xSecond = 0, ySecond = 0, xMin = 0, yMin = 0;

 public ClockDemo() {
  super("数字时钟"); // 调用父类构造函数
  setFont(new Font("宋体", Font.BOLD, 20)); // 设置时钟的显示字体
  start(); // 开始进程
  setSize(360, 360); // 设置窗口尺寸
  setVisible(true); // 窗口可视
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时退出程序
 }

 public void start() { // 开始进程
  if (clock == null)// 如果进程为空值
  {
   clock = new Thread(this); // 实例化进程
   clock.start(); // 开始进程
  }
 }

 public void run()// 运行进程
 {
  while (clock != null) {
   repaint(); // 调用paint方法重绘界面
   try {
    Thread.sleep(1000); // 线程暂停一秒(1000毫秒)
   } catch (InterruptedException ex) {
    ex.printStackTrace(); // 输出出错信息
   }
  }
 }

 public void stop()// 停止进程
 {
  clock = null;
 }

 public void paint(Graphics g)// 重载组件的paint方法
 {
  Graphics2D g2 = (Graphics2D) g; // 得到Graphics2D对象
  DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
  Calendar now = new GregorianCalendar(); // 实例化日历对象
  now.setTime(new Date());// dateFormat.format(now.getTime())
  String timeInfo = ""; // 输出信息
  int hour = now.get(Calendar.HOUR_OF_DAY); // 得到小时数
  int minute = now.get(Calendar.MINUTE); // 得到分数
  int second = now.get(Calendar.SECOND); // 得到秒数
  if (hour <= 9)
   timeInfo += "0" + hour + ":"; // 格式化输出
  else
   timeInfo += hour + ":";
  if (minute <= 9)
   timeInfo += "0" + minute + ":";
  else
   timeInfo += minute + ":";
  if (second <= 9)
   timeInfo += "0" + second;
  else
   timeInfo += second;
  g.setColor(Color.yellow); // 设置当前颜色为黄色
  Dimension dim = getSize(); // 得到窗口尺寸
  g.fillRect(0, 0, dim.width, dim.height); // 填充背景色为黄色
  g.setColor(Color.red); // 设置当前颜色为红色
  g.drawString(timeInfo, 130, 340); // 显示时间字符串
  g.setColor(Color.green);
  g.drawString(dateFormat.format(now.getTime()), 20, 60);
  g.setColor(Color.black);
  g.setFont(new Font("SAN_SERIF", Font.BOLD, 15));
  for (int i = 1, num = 3; i <= 60; i++) {
   // 转换成角度
   double alfa = Math.toRadians(i * 6);
   int xPos = Xpoint + (int) (R * Math.sin(alfa));
   int yPos = Ypoint - (int) (R * Math.cos(alfa));
   if (i % 15 == 0) {
    g.setColor(Color.red); // 数字3,6,9,12为红色
    g.drawString("" + num, xPos - 5, yPos + 3); // 写数字
    num += 3;
   } else {
    g.setColor(Color.black);
    g.drawString(".", xPos, yPos);
   }
  }
  // 画中心圆点
  g.setColor(Color.black);
  g.fillOval(Xpoint - 4, Ypoint - 4, 8, 8);
  // 画秒针
  xSecond = (int) (Xpoint + (R - 10)
    * Math.sin(second * (2 * Math.PI / 60)));
  ySecond = (int) (Ypoint - (R - 10)
    * Math.cos(second * (2 * Math.PI / 60)));
  g.setColor(Color.red);
  g.drawLine(Xpoint, Ypoint, xSecond, ySecond);
  // 画分针
  xMin = (int) (Xpoint + (R - 20)
    * Math.sin((minute + second / 60) * (2 * Math.PI / 60)));
  yMin = (int) (Ypoint - (R - 20)
    * Math.cos((minute + second / 60) * (2 * Math.PI / 60)));
  g.setColor(Color.red);
  g.drawLine(Xpoint, Ypoint, xMin, yMin);
  // 画时针
  xHour = (int) (Xpoint + (R - 30)
    * Math.sin((hour + minute / 60 + second / 60 / 60)
      * (2 * Math.PI / 12)));
  yHour = (int) (Ypoint - (R - 30)
    * Math.cos((hour + minute / 60 + second / 60 / 60)
      * (2 * Math.PI / 12)));
  g.setColor(Color.red);
  g.drawLine(Xpoint, Ypoint, xHour, yHour);
 }

 public static void main(String[] args) {
  new ClockDemo();
 }
}


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java时钟程序是一种用Java语言编写的程序,用于在计算机屏幕上显示当前时间,并实时更新。初学者可以在互联网上下载和安装Java时钟程序。 要下载Java时钟程序,首先需要一个可靠的互联网连接。然后,可以通过搜索引擎在网上查找可靠的网站,如软件下载网站或开发者网站,以获取Java时钟程序的安装文件。 在搜索结果中,可以找到许多Java时钟程序的下载选项。选择一个最受欢迎和好评的程序,并确保它是最新的版本,以确保在安装和使用过程中没有问题。 在找到适合的Java时钟程序后,点击下载按钮将程序文件保存到计算机的指定位置。下载速度取决于互联网连接的速度和程序文件的大小。 一旦下载完成,可以通过双击程序文件来安装Java时钟程序。安装过程通常是自我导航的,并且会显示各种安装选项和设置,如安装路径和程序的开始菜单快捷方式。 完成安装后,可以通过开始菜单中的程序列表或在桌面上的快捷方式启动Java时钟程序。一旦启动,程序将显示当前时间,并随着时间的推移进行实时更新。 总的来说,下载Java时钟程序是一个简单的过程,只需要一个可靠的互联网连接,并通过搜索引擎找到可靠的下载网站。稍后,可以通过安装文件安装程序,并在计算机上使用Java时钟程序来显示当前时间和更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值