谁有用java的application编写的倒计时钟代码?

作者&投稿:犹万 (若有异议请与网页底部的电邮联系)
~ 分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

是一个这样的倒计时钟:输入一个时间 比如120分钟 按开始后 倒计时开始.在中途可以选择暂停.在剩下1分钟时会有提示.

要用application编写的哦.麻烦各位高手了.

解析:

package hello;

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

import java.util.*;

import java.awt.geom.*;

public class T extends Applet implements Runnable{

Thread tHour = null,tMinute = null,tSecond = null;表示时针,分针和秒针的线程

int hour_a,hour_b,minute_a,minute_b,second_a,second_b;表示时针,分针,秒针端点的整型变量

int hour = 0,minute = 0,second = 0;获取当前时间的整型变量

绘制时针,分针和秒针的Graphics对象

Graphics g_second = null,g_minute = null,g_hour =null;

存放表盘刻度的数组,供指针走动时使用

double point_x[] = new double[61],point_y[] = new double[61];

存放表盘刻度的数组,供绘制表盘使用

double scaled_x[] = new double[61],scaled_y[] = new double[61];

判断小程序是否重新开始的变量

int start_count = 0;

public void init(){

g_hour = this.getGraphics();

g_hour.setColor(Color.CYAN);

g_second = this.getGraphics();

g_second.setColor(Color.RED);

g_minute = this.getGraphics();

g_minute.setColor(Color.blue);

g_second.translate(200,200);进行坐标系统变换,将新坐标系原点设在(200,200)处

g_minute.translate(200,200);

g_hour.translate(200,200);

point_x[0] = 0; point_y[0] = -120;各个时针12点处的位置坐标(按新坐标系的坐标)

scaled_x[0] = 0;scaled_y[0] = -140;12点处的刻度位置坐标(按新坐标系的坐标)

double jiaodu = 6*Math.PI/180;

表盘分割成60分,将分割点的坐标存放在数组中

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

point_x[i+1] = point_x[i]*Math.cos(jiaodu)-Math.sin(jiaodu)*point_y[i];

point_y[i+1] = point_y[i]*Math.cos(jiaodu) + point_x[i]*Math.sin(jiaodu);

}

point_x[60] = 0; point_y[60] = -120;

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

scaled_x[i+1] = scaled_x[i]*Math.cos(jiaodu)-Math.sin(jiaodu)*scaled_y[i];

scaled_y[i+1] = scaled_y[i]*Math.cos(jiaodu) + Math.sin(jiaodu)*scaled_x[i];

}

scaled_x[60]= 0;

scaled_y[60] = -140;

}

public void start(){

每当小程序重新开始时,首先消灭线程,然后重新开始创建线程

if(start_count >= 1){

tSecond.interrupt();

tMinute.interrupt();

tHour.interrupt();

}

tSecond = new Thread(this);

tMinute = new Thread(this);

tHour = new Thread(this);

tSecond.start();

tMinute.start();

tHour.start();

start_count++;

if(start_count >= 2) start_count = 1;

}

public void stop()

{

tSecond.interrupt();

tMinute.interrupt();

tHour.interrupt();

}

public void paint(Graphics g){

this.start();

g.drawOval(50,50,300,300);表盘的外圈

g.translate(200,200);

绘制表盘的小刻度和大刻度

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

if(i%5 == 0){

g.setColor(Color.BLACK);

g.fillOval((int) scaled_x[i],(int) scaled_y[i],10,10);

}

else

g.fillOval((int)scaled_x[i],(int)scaled_y[i],5,5);

}

}

public void run(){

获取本地时间

Date date = new Date();

String s=date.toString();

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

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

second = Integer.parseInt(s.substring(17,19));

if(Thread.currentThread() == tSecond){

second_a =(int)point_x[second];

second_b = (int)point_x[second];

g_second.drawLine(0,0,second_a,second_b);秒针的初始位置

g_second.drawString("秒",second_a,second_b);

int i = second;

while(true){

try{

tSecond.sleep(1000);

Color c = getBackground();

g_second.setColor(c);

g_second.drawLine(0,0,second_a,second_b);用背景色清除前一秒时的秒针

g_second.drawString("秒",second_a,second_b);

如果秒针与分针重合,恢复分针的显示

if((second_a == minute_a)&&(second_b == minute_b)){

g_minute.drawLine(0,0,minute_a,minute_b);

g_minute.drawString("分",minute_a,minute_b);

}

如果秒针与时针重合,恢复时针的显示

if((second_a == hour_a)&&(second_b == hour_b)){

g_hour.drawLine(0,0,hour_a,hour_b);

g_hour.drawString("时",hour_a,hour_b);

}

}

catch(InterruptedException e){

Color c = getBackground();

g_second.setColor(c);

g_second.drawLine(0,0,second_a,second_b);用背景色清除秒针

g_second.drawString("秒",second_a,second_b);

return;

}

秒针向前走一个单位

second_a=(int)point_x[(i+1)%60];

second_b = (int)point_y[(i+1)%60]; 每一秒走6度(一个单位格)

g_second.setColor(Color.red);

g_second.drawLine(0,0,second_a,second_b);

g_second.drawString("秒",second_a,second_b);

i++;

}

}

if(Thread.currentThread() == tMinute){

minute_a = (int)point_x[minute];

minute_b = (int)point_y[minute];

g_minute.drawLine(0,0,minute_a,minute_b);

int i = minute;

while(true){

第一次过60-second秒就前进一分钟,以后每过60秒前进一分钟

try{

tMinute.sleep(1000*60 - second*1000);

second = 0;

Color c = getBackground();

g_minute.setColor(c);

g_minute.drawLine(0,0,minute_a,minute_b);

g_minute.drawString("分",minute_a,minute_b);

if((hour_a == minute_a)&&(hour_b== minute_b)){

g_hour.drawLine(0,0,minute_a,minute_b);

g_hour.drawString("时",hour_a,hour_b);

}

}

catch(InterruptedException e){

return;

}

minute_a = (int)point_x[(i+1)%60];

minute_b = (int)point_y[(i+1)%60];

g_minute.setColor(Color.BLUE);

g_minute.drawLine(0,0,minute_a,minute_b);

g_minute.drawString("分",minute_a,minute_b);

i++; second = 0;

}

}

if(Thread.currentThread() == tHour){

int h = hour%12;

hour_a = (int)point_x[h*5 + minute/12];

hour_b = (int)point_y[h*5 + minute/12];

int i = h*5 + minute/12;

g_hour.drawLine(0,0,hour_a,hour_b);

g_hour.drawString("时",hour_a,hour_b);

while(true){

第一次过12-minute%12分钟就前进一个刻度,以后每过12分钟前进一个刻度

try{

tHour.sleep(1000*60*12 - 1000*60*(minute%12) - second *1000);

minute = 0;

Color c = getBackground();

g_hour.setColor(c);

g_hour.drawLine(0,0,hour_a,hour_b);

g_hour.drawString("时",hour_a,hour_b);

}

catch(InterruptedException e){

return;

}

hour_a = (int)point_x[(i+1)%60];

hour_b = (int)point_y[(i+1)%60];

g_hour.setColor(Color.CYAN);

g_hour.drawLine(0,0,hour_a,hour_b);

g_hour.drawString("时",hour_a,hour_b);

i++;minute = 0;

}

}

}

}


java怎么把privatekey存起来
可以使用Java的文件操作AP来读取和写入私钥文件。3、使用数据库:如果应用程序使用数据库,可以将私钥存储在数据库中。可以将私钥作为二进制数据存储在数据库表中的相应列中。4、使用配置文件:可以将私钥存储在一个配置文件中,例如使用Properties文件格式。可以使用Java的`Properties`类来读取和写入配置文件...

选择正确的AP计算机科学课程
另一方面,AP计算机科学A不使用这些性能任务中的任何一个。因此,AP计算机科学A的评估格式对于熟练应试、工作速度快、熟悉Java的学生是有益的。AP计算机科学原理格式可能更适合那些对自己在长期课堂环境中创造高质量产品的能力更有信心的学生。课程适用性和如何学习更多 在选择计算机科学课程时,学生应该考虑...

如何使用Java API操作Hbase
先导入hbase的相关jar包。再根据api进行操作。package com.util;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.HColumnDescriptor;import org....

请介绍一下java
详情请查看视频回答

java中有和获取wifi信息的函数吗?
java中是没有的,wifi是需要有硬件设备去支持,不过android中有提供相应的api,也是java写的噢 在Android中对Wifi操作,android本身提供了一些有用的包,在android.net.wifi包下面。主要包括以下几个类和接口:1.ScanResult 主要用来描述已经检测出的接入点,包括接入点的地址,接入点的名称,身份认证,频率...

java中contentPane和Container是什么关系?为什么我查API的时候,为什么AP...
+ ".contentPane");localJPanel.setLayout(new BorderLayout(this){ public void addLayoutComponent(, Object paramObject){ if (paramObject == null)paramObject = "Center";super.addLayoutComponent(paramComponent, paramObject);} });return localJPanel;\/\/④ } 以上代码是java API的源文件 ...

java 开发开发工具怎么优化
2016-03-24 目前java开发哪个开发工具最好用 11 2018-08-05 java有哪些性能优化工具 2018-07-30 java web项目 如何减少内存消耗,有什么工具 2016-08-26 java软件开发工程师,如何提升常用的框架能力 2017-11-15 提高web开发程序员工作效率工具有哪些 2018-08-17 如何优化用Java se 开发出来的图形界面 ...

JAVA佳沃新出的那款公路车费罗切怎么样?
挺不错,最近挺火的,一上架就很多人关注了,性价比确实不错,破风设计,APEX套件,碳纤维车架,才六千多,这个价位大多数人还是比较容易接受 颜色黑黄 黑红 钛黑 尺寸48\/50\/52CM 碳纤车架AP-09 \/ FEROCE碳700C*480MM BB86 碳纤前叉AP-09 3K布纹配AP-09 \/ FEROCE碳纤公路车架 碳纤座管AP-09 ...

美国高中课程难不难
第三种就是学习电脑编程(APComputerScience),这门课稍微花点时间,因为编程的作业量稍大,不像其他课只要翻翻书就好了,但上完后会对编程有一个较为宏观的理解,虽然学的是JAVA,但一通百通,像VB,C++这样其他的语言虽然不会写也能看懂。 科学Science 美国的科学主要是三大类:物理,化学,生物。普遍的要求是这3门...

美国高中AP课程难不难
统计:一开始可能有点难理解,不过各种各样的模型最后学的都是同样的东西。这个对理解能力要求比较高,考试时也会有一些简答题。按照自己的英语能力和时间看吧。电脑A:基本是学JAVA基础,难度不大,有足够时间就没问题。美国历史:我上过,感觉是上过的之中最难的,考试的时候要写两篇DBQ(Document-...

淮阳县13535143509: 谁有 javascript 写的点击率程序??
能翔板蓝: 首先写点击率要找到网站的漏洞,然后插入JS脚本 <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart Session.Timeout=1 Application.Lock Application("WhosOn") = 0 Application.UnLock End Sub Sub ...

淮阳县13535143509: Java终止函数是什么?Java终止函数是什么?
能翔板蓝: 对于对象而言,Java 终止函数履行最后的确认工作.这与Java 结构函数是相反的,Java 结构函数创建以及初始化了一个Java类实例.当一个对象不在被需要以及这些资源...

淮阳县13535143509: JAVA系统没有经过注销直接关了再登入登不进去怎么办?
能翔板蓝: 两种方法: 1.登录时给session设置个attribut,注销时清除或修改这个值,再登录时通过这个值判断. 2.注销是手动调用session毁坏方法.好像是session.destroy().

淮阳县13535143509: 手机刚买一月用360发现一个半年前安装的软件applicatio?
能翔板蓝: 有些东西不要太依赖软件了,就那你装的ghost系统,你可以进C盘看看,文件都是制作ghost的日期,手机翻新最主要看上市时间!上市时间长的话,新机是有点不靠谱,但是很畅销的机型是有库存的~

淮阳县13535143509: android项目在eclipse中使用run as→android application后,一点反应都没有,希望高手出手救命,谢谢了 截图 -
能翔板蓝: 在左边的项目中右键run as->android apolication就行了

淮阳县13535143509: 从Java文件的编译到最终执行的过程是什么样子的?
能翔板蓝: 如果觉的我答案有用,请点赞. java虚拟机规格描述编辑JVM的设计目标是提供一个基于抽象规格描述的计算机模型,为解释程序开发人员提范的任何系统上运行

淮阳县13535143509: jsp:session作用域和application作用域的区别? -
能翔板蓝: session基于会话的,也就是正常来说网页关闭的话,session就清空了 application是基于服务器的,也就是你的服务器比如tomcat关闭的时候,才会被清空

淮阳县13535143509: 求个while循环的代码明天的作业有个题目如下:现在有水
能翔板蓝: while((warter-50)>0) { warter+=5; i++; }

淮阳县13535143509: 数学模型论文 - 指纹唯一性的数学模型怎么建立呢?给点算法啊最近要交数学建模的论文
能翔板蓝: 宝贝,你首先得有超级计算机,不用银河,曙光就行了. 下面的可能对你有用: 指纹有两大特点:第一,人类繁衍至今,还没有发现不同的人具有相同的指纹;第二,同...

淮阳县13535143509: 英译中Inmanymotor - controlapplicatio
能翔板蓝: 在许多马达控制应用过程中, 故障自动保险的操作是重要的.MCU 与一台故障自动保险的时钟显示器(如果晶体掉落的话内部RC 摆动器可能被使用作为一个备用时钟的...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网