java 计时 timeclock_用 java 写一个clock的类,100毫秒的时钟 求代码。。越简单越好。。最好有注释...
展开全部
这里有一个时钟的类,你看一下吧,不明白你的 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毫秒的时钟 求代码。。越简单越好。。最好有注释...相关推荐
- java攻击力与命中_JAVA写一个怪物的类,类中有属性姓名,攻击力,有打人的方法。...
展开全部 //filename:Monster.java public interface Monster { public String getName(); public Integer getA ...
- (一)、写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。(方法的重写)...
(一).写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight). 再写两个子类: 红猪的类:类中有属性姓名(name),攻击力(attack),颜色(color ...
- 1. 写一个基本的类
1. 写一个基本的类 上手C++以来,仅熟练使用if.for等基本语句的我有很多疑惑,本篇主要解答以下问题: 类是什么 public & private 的作用 创建一个类,.cpp和.h文件 ...
- cmd写java程序_用cmd写一个最简单的Java程序
一,准备: 1.确保电脑中装有eclipse软件并且确保配置好环境变量 (1)环境变量配置方法: 特别提示:jdk和eclipse保存的路径不能有中文字符 1.打开我的电脑--属性--高级--环境变量 ...
- 写一个楼房盘类java语言编写_Java开发每日复盘2018_0514
今天主要跟大家分享3个部分: 一.「Java的核心机制」 二.「Java命名规范」 三.「Java数据类型相关」 下面我们来一个一个的说: 「Java核心机制」 Java是一种强制面向对象的解释型语言 ...
- Java写一个excel工具类_Java中Excel写操作工具类--Java免费学习网
核心提示:package com.common.excel;import com.common.excel.exception.WriteExcelException;import jxl.Workb ...
- java jdbc操作类_Java-编写一个jdbc操作类
package数据库操作类;/** Db.java Created on 2007年8月20日, 上午 8:37*/ import java.io.*;import java.sql.*;import ...
- java将古诗竖排_写一个java程序 将一首古诗竖着排序从右往左读
展开全部 import java.awt.Color; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Gra ...
- 《JAVA练习题目7》 定义一个素数生成器类PrimeGenerator,用于生成给定区间内的所有素数。(类PrimeGenerator都由类Main代替)
题目内容: 定义一个素数生成器类PrimeGenerator,用于生成给定区间内的所有素数.要求PrimeGenerator类具有: 属性:start(区间起始值),end(区间终止值),两个属性均为 ...
最新文章
- 智慧工地-基于深度学习yolov3的安全帽检测以及安全帽检测数据集(1)
- R语言诊断试验数据处理与ROC分析实战案例2
- 【Java】全站编码过滤器GenericEncodingFilter代码与配置
- python修改类属性值_python编程入门到实践:直接修改属性的值和通过方法修改属性的值...
- python3爬虫实例-python3.7简单的爬虫实例详解
- windows主机用scp命令向Linux服务器上传和下载文件
- VC中栈溢出/Stack overflow怎么办?
- 最好的VLAN资料之十一
- html如何引入less,VueJS如何引入css或者less文件的一些坑
- meterpreter 监控桌面命令(screenshare)
- STM32 SPI驱动OLED12864原理图和源代码分享
- 算24(递归)--算法学习
- 报错:“TypeError: Cannot read property ‘0‘ of undefined“的原因
- HDFS(下):NameNode和SecondaryNameNode、HDFS工作机制、故障处理、集群安全模式、服役退役节点、集群黑白名单、DataNode多目录详解、HDFS2.x新特性
- 白炽灯护眼还是LED护眼?盘点led护眼灯品牌排行
- 公司章程如何设计规避股权纠纷
- mysql 读写分离 360_使用奇虎360的Atlas实现MySQL读写分离
- 微型计算机原理应用总结,微机原理应用复习提纲及重要知识点总结
- Android建立网络连接,利用JSON数据获取百度图片搜索结果及GSON的简单使用
- Hibernate Validation校验注解详解
热门文章
- Python_base_正则表达式
- 自定义SSL证书实现单双向ssl认证记录
- Mysql中autocommit的用法
- metasploit联动beef启动
- 【Unity3D基础教程】给初学者看的Unity教程(一):GameObject,Compoent,Time,Input,Physics...
- Visual Studio 2013中因Browser Link引起的Javascript错误
- UML 统一建模语言Unified Modeling Language (UML)
- JAVA中的hasNextInt()方法多次调用只有一个结果的原因
- 本人正式入驻博客园~
- C语言进阶——使用C语言与gnuplot结合画一些波形