展开全部

这里有一个时钟的类,你看一下吧,不明白你的 100毫秒的时钟 是什么意思。

import java.awt.BasicStroke;

import java.awt.BorderLayout;

import java.awt.Canvas;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.geom.Line2D;

import java.util.Date;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.Timer;

public class ClockAs extends Canvas implements ActionListener {

static JButton jb = new JButton("开始");

static JButton jb1 = new JButton("暂停62616964757a686964616fe78988e69d8331333330343961");

Date date;

Timer secondTime;

int hour, munite, second;

Line2D secondLine, muniteLine, hourLine;

int a, b, c;

double pointSX[] = new double[60],// 用来表示秒针端点坐标的数组

pointSY[] = new double[60], pointMX[] = new double[60], // 用来表示分针端点坐标的数组

pointMY[] = new double[60], pointHX[] = new double[60], // 用来表示时针端点坐标的数组

pointHY[] = new double[60];

ClockAs() {

secondTime = new Timer(1000, this);

pointSX[0] = 0; // 12点秒针位置

pointSY[0] = -100;

pointMX[0] = 0; // 12点分针位置

pointMY[0] = -90;

pointHX[0] = 0; // 12点时针位置

pointHY[0] = -70;

double angle = 6 * Math.PI / 180; // 刻度为6度

for (int i = 0; i < 59; i++) // 计算出各个数组中的坐标

{

pointSX[i + 1] = pointSX[i] * Math.cos(angle) - Math.sin(angle)

* pointSY[i];

pointSY[i + 1] = pointSY[i] * Math.cos(angle) + pointSX[i]

* Math.sin(angle);

pointMX[i + 1] = pointMX[i] * Math.cos(angle) - Math.sin(angle)

* pointMY[i];

pointMY[i + 1] = pointMY[i] * Math.cos(angle) + pointMX[i]

* Math.sin(angle);

pointHX[i + 1] = pointHX[i] * Math.cos(angle) - Math.sin(angle)

* pointHY[i];

pointHY[i + 1] = pointHY[i] * Math.cos(angle) + pointHX[i]

* Math.sin(angle);

}

for (int i = 0; i < 60; i++) {

pointSX[i] = pointSX[i] + 120; // 坐标平移

pointSY[i] = pointSY[i] + 120;

pointMX[i] = pointMX[i] + 120; // 坐标平移

pointMY[i] = pointMY[i] + 120;

pointHX[i] = pointHX[i] + 120; // 坐标平移

pointHY[i] = pointHY[i] + 120;

}

secondLine = new Line2D.Double(0, 0, 0, 0);

muniteLine = new Line2D.Double(0, 0, 0, 0);

hourLine = new Line2D.Double(0, 0, 0, 0);

secondTime.start(); // 秒针开始计时

}

public void paint(Graphics g) {

for (int i = 0; i < 60; i++) // 绘制表盘上的小刻度和大刻度

{

int m = (int) pointSX[i];

int n = (int) pointSY[i];

if (i % 5 == 0) {

g.setColor(Color.red);

g.fillOval(m - 4, n - 4, 8, 8);

} else {

g.setColor(Color.cyan);

g.fillOval(m - 2, n - 2, 4, 4);

}

}

g.fillOval(115, 115, 10, 10); // 钟表中心的实心圆

Graphics2D g_2d = (Graphics2D) g;

g_2d.setColor(Color.red);

g_2d.draw(secondLine);

BasicStroke bs = new BasicStroke(3f, BasicStroke.CAP_ROUND,

BasicStroke.JOIN_MITER);

g_2d.setStroke(bs);

g_2d.setColor(Color.blue);

g_2d.draw(muniteLine);

bs = new BasicStroke(6f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER);

g_2d.setStroke(bs);

g_2d.setColor(Color.green);

g_2d.draw(hourLine);

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == secondTime) {

date = new Date();

String s = date.toString();

hour = Integer.parseInt(s.substring(11, 13));

munite = Integer.parseInt(s.substring(14, 16));

second = Integer.parseInt(s.substring(17, 19)); // 获取时间中的秒

int h = hour % 12;

a = second; // 秒针端点的坐标

b = munite; // 分针端点的坐标

c = h * 5 + munite / 12; // 时针端点的坐标

secondLine.setLine(120, 120, (int) pointSX[a], (int) pointSY[a]);

muniteLine.setLine(120, 120, (int) pointMX[b], (int) pointMY[b]);

hourLine.setLine(120, 120, (int) pointHX[c], (int) pointHY[c]);

repaint();

}

if (e.getSource() == jb) {

secondTime.start();

}

if (e.getSource() == jb1) {

secondTime.stop();

}

}

public static void main(String args[]) {

JFrame win = new JFrame("时钟");

JPanel jp = new JPanel();

jp.add(jb);

jp.add(jb1);

ClockAs clock = new ClockAs();

jb.addActionListener(clock);

jb1.addActionListener(clock);

win.add(clock, BorderLayout.CENTER);

win.add(jp, "South");

win.setVisible(true);

win.setSize(246, 300);

win.setDefaultCloseOperation(3);

win.validate();

}

}

更多追问追答

追问

我只想做一个计时装置 每隔100毫秒 执行i=i+1

追答

你看一下这个呢?

import java.io.IOException;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

public class Test extends TimerTask {

int i = 0;

public static void main(String args[]) throws IOException {

Timer timer = new Timer();

timer.schedule(new Test(), new Date(), 100);

}

public void run() {

System.out.println(i++);

}

}

追问

恩恩 谢谢你了

本回答由提问者推荐

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java 计时 timeclock_用 java 写一个clock的类,100毫秒的时钟 求代码。。越简单越好。。最好有注释...相关推荐

  1. java攻击力与命中_JAVA写一个怪物的类,类中有属性姓名,攻击力,有打人的方法。...

    展开全部 //filename:Monster.java public interface Monster { public String getName(); public Integer getA ...

  2. (一)、写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。(方法的重写)...

    (一).写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight). 再写两个子类: 红猪的类:类中有属性姓名(name),攻击力(attack),颜色(color ...

  3. 1. 写一个基本的类

    1. 写一个基本的类 上手C++以来,仅熟练使用if.for等基本语句的我有很多疑惑,本篇主要解答以下问题: 类是什么 public & private 的作用 创建一个类,.cpp和.h文件 ...

  4. cmd写java程序_用cmd写一个最简单的Java程序

    一,准备: 1.确保电脑中装有eclipse软件并且确保配置好环境变量 (1)环境变量配置方法: 特别提示:jdk和eclipse保存的路径不能有中文字符 1.打开我的电脑--属性--高级--环境变量 ...

  5. 写一个楼房盘类java语言编写_Java开发每日复盘2018_0514

    今天主要跟大家分享3个部分: 一.「Java的核心机制」 二.「Java命名规范」 三.「Java数据类型相关」 下面我们来一个一个的说: 「Java核心机制」 Java是一种强制面向对象的解释型语言 ...

  6. Java写一个excel工具类_Java中Excel写操作工具类--Java免费学习网

    核心提示:package com.common.excel;import com.common.excel.exception.WriteExcelException;import jxl.Workb ...

  7. java jdbc操作类_Java-编写一个jdbc操作类

    package数据库操作类;/** Db.java Created on 2007年8月20日, 上午 8:37*/ import java.io.*;import java.sql.*;import ...

  8. java将古诗竖排_写一个java程序 将一首古诗竖着排序从右往左读

    展开全部 import java.awt.Color; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Gra ...

  9. 《JAVA练习题目7》 定义一个素数生成器类PrimeGenerator,用于生成给定区间内的所有素数。(类PrimeGenerator都由类Main代替)

    题目内容: 定义一个素数生成器类PrimeGenerator,用于生成给定区间内的所有素数.要求PrimeGenerator类具有: 属性:start(区间起始值),end(区间终止值),两个属性均为 ...

最新文章

  1. 智慧工地-基于深度学习yolov3的安全帽检测以及安全帽检测数据集(1)
  2. R语言诊断试验数据处理与ROC分析实战案例2
  3. 【Java】全站编码过滤器GenericEncodingFilter代码与配置
  4. python修改类属性值_python编程入门到实践:直接修改属性的值和通过方法修改属性的值...
  5. python3爬虫实例-python3.7简单的爬虫实例详解
  6. windows主机用scp命令向Linux服务器上传和下载文件
  7. VC中栈溢出/Stack overflow怎么办?
  8. 最好的VLAN资料之十一
  9. html如何引入less,VueJS如何引入css或者less文件的一些坑
  10. meterpreter 监控桌面命令(screenshare)
  11. STM32 SPI驱动OLED12864原理图和源代码分享
  12. 算24(递归)--算法学习
  13. 报错:“TypeError: Cannot read property ‘0‘ of undefined“的原因
  14. HDFS(下):NameNode和SecondaryNameNode、HDFS工作机制、故障处理、集群安全模式、服役退役节点、集群黑白名单、DataNode多目录详解、HDFS2.x新特性
  15. 白炽灯护眼还是LED护眼?盘点led护眼灯品牌排行
  16. 公司章程如何设计规避股权纠纷
  17. mysql 读写分离 360_使用奇虎360的Atlas实现MySQL读写分离
  18. 微型计算机原理应用总结,微机原理应用复习提纲及重要知识点总结
  19. Android建立网络连接,利用JSON数据获取百度图片搜索结果及GSON的简单使用
  20. Hibernate Validation校验注解详解

热门文章

  1. Python_base_正则表达式
  2. 自定义SSL证书实现单双向ssl认证记录
  3. Mysql中autocommit的用法
  4. metasploit联动beef启动
  5. 【Unity3D基础教程】给初学者看的Unity教程(一):GameObject,Compoent,Time,Input,Physics...
  6. Visual Studio 2013中因Browser Link引起的Javascript错误
  7. UML 统一建模语言Unified Modeling Language (UML)
  8. JAVA中的hasNextInt()方法多次调用只有一个结果的原因
  9. 本人正式入驻博客园~
  10. C语言进阶——使用C语言与gnuplot结合画一些波形