`
tyl
  • 浏览: 50770 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Java简单时钟例子

阅读更多

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

分享到:
评论

相关推荐

    模具状态监测行业发展趋势:预计到2030年市场规模为5.06亿美元

    模具状态监测市场:6.8%的年复合增长率引领制造业智能化升级 在快速发展的制造业中,模具作为生产过程中的核心部件,其状态直接影响到产品的质量和生产效率。然而,模具的损耗和故障往往难以预测,给企业带来不小的损失。如今,随着模具状态监测技术的兴起,这一切正在发生改变。这项创新技术不仅能够帮助企业提前发现模具的潜在问题,还能显著延长模具的使用寿命,提升生产效率。但你真的了解这个市场的潜力和现状吗?让我们一同揭开模具状态监测市场的神秘面纱。 市场概况: 根据QYR(恒州博智)的统计,2023年全球模具状态监测市场的销售额已经达到了3.2亿美元,预计到2030年,这一数字将攀升至5.06亿美元,年复合增长率高达6.8%。这一显著的增长背后,是制造业对智能化、自动化生产需求的不断提升,以及模具状态监测技术在提高生产效率、降低维护成本方面的显著优势。 技术创新与趋势: 模具状态监测技术主要依赖于传感器、数据分析和处理等技术手段,能够实时采集模具的温度、振动、压力等指标,并通过与预设参数的比对,及时识别模具的异常情况。随着物联网、大数据和人工智能等技术的不断发展,模具状态监测技术将更加智能化,能够提供

    Kubernetes DevOps实践工作坊-从理论到实战操作脚本集(含源码).zip

    Kubernetes DevOps实践工作坊-从理论到实战操作脚本集(含源码).zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!

    基于springboot+vue3+uniapp的点餐小程序源代码+数据库+文档说明(高分毕设)

    基于springboot+vue3+uniapp的点餐小程序源代码+数据库+文档说明(高分毕设),个人经导师指导并认可通过的毕业设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于springboot+vue3+uniapp的点餐小程序源代码+数据库+文档说明(高分毕设)基于springboot+vue3+uniapp的点餐小程序源代码+数据库+文档说明(高分毕设)基于springboot+vue3+uniapp的点餐小程序源代码+数据库+文档说明(高分毕设)基于springboot+vue3+uniapp的点餐小程序源代码+数据库+文档说明(高分毕设)基于springboot+vue3+uniapp的点餐小程序源代码+数据库+文档说明(高分毕设)基于springboot+vue3+uniapp的点餐小程序源代码+数据库+文档说明(高分毕设)基于springb

    欧姆龙NX1P2系列总线plc程序 自动检测机,plc程序,无触摸屏程序 1.多工位DDR马达转盘控制,多工位同时加工 2.多产品配方功能程序 3.各种实用型自制功能块程序,可重复调用,成熟设备

    欧姆龙NX1P2系列总线plc程序 自动检测机,plc程序,无触摸屏程序 1.多工位DDR马达转盘控制,多工位同时加工。 2.多产品配方功能程序。 3.各种实用型自制功能块程序,可重复调用,成熟设备

    企业微信最全养号、防封、加人机制.pdf

    企业微信最全养号、防封、加人机制.pdf

    LLM 友好的异步爬虫框架

    这是一款用 Python 开发的异步爬虫框架,能够将网站上的数据转化成 Markdown、JSON 等 LLM 友好的输出格式。它完全开源且免费,极大地简化了异步爬虫的编写。相比于付费的 Firecrawl,它具有更快的爬取速度,支持同时抓取多个 URL、页面截图、关键字优化提取(基于 LLM)和复杂的多页面会话管理等功能。

    毕设Python春节电影信息爬取与可视化分析源码+项目说明+全部资料.zip

    毕设Python春节电影信息爬取与可视化分析源码+项目说明+全部资料.zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!

    2019厦门国际银行数创金融杯源码+竞赛策略报告文档.zip

    2019厦门国际银行数创金融杯源码+竞赛策略报告文档.zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!

    基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)

    基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业),个人经导师指导并认可通过的毕业设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开

    基于java的小区智能卡管理系统设计与实现.docx

    基于java的小区智能卡管理系统设计与实现.docx

    NLP中文垃圾短信分类系统源码+设计全部资料+文档报告(自然语言处理课设).zip

    NLP中文垃圾短信分类系统源码+设计全部资料+文档报告(自然语言处理课设).zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!

    电源滤波器车辆状态估计,扩展卡尔曼滤波EKF,无迹卡尔曼滤波UKF车辆状态估计,扩展卡尔曼滤波EKF,无迹卡尔曼滤波UKF 角阶跃输入+整车7自由度模型+UKF状态估计模型+附送EKF状态估计模型,针

    电源滤波器车辆状态估计,扩展卡尔曼滤波EKF,无迹卡尔曼滤波UKF车辆状态估计,扩展卡尔曼滤波EKF,无迹卡尔曼滤波UKF 角阶跃输入+整车7自由度模型+UKF状态估计模型+附送EKF状态估计模型,针对于轮毂电机分布式驱动车辆,进行车速,质心侧偏角,横摆角速度估计。 模型输入:方向盘转角delta,车辆纵向加速度ax 模型输出:横摆角速度wz,纵向车速vx,质心侧偏角β

Global site tag (gtag.js) - Google Analytics