JAVA秒表
JAVA计时器(秒表)程序代码
Java计时器(秒表)功能:能实现计时,暂停,清零,记录功能。
如下图:程序运行状态:源代码:import javax.swing.*;import java.awt.*;import .*;public class Test {public static void main(String[] args){new window("计时器");}}class window extends JFrame{int ON=0,i=0,j=0,k=0,count=0,num=1,R=0;JButton button1,button2,button3,button4,button5; JTextField file1,file2,file3;JTextArea file;FlowLayout flow;String a,b,c;window(String name){file1=new JTextField(2);file2=new JTextField(2);file3=new JTextField(2);file1.setEditable(false);file2.setEditable(false);file3.setEditable(false);file=new JTextArea(10,8);file.setEditable(false);button1=new JButton("开始");button2=new JButton("暂停");button3=new JButton("清零");button4=new JButton("记录");button5=new JButton("清空记录");flow=new FlowLayout();flow.setAlignment(FlowLayout.LEFT); flow.setHgap(20);flow.setVgap(10);setTitle(name);setSize(210,400);setLayout(flow);add(file1);add(new JLabel(":"));add(file2);add(new JLabel(":"));add(file3);add(button1);add(button2);add(button3);add(button4);add(button5);add(file);setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); file1.setText("0");file2.setText("0");file3.setText("0");validate();button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ON=1; //开始,暂停控制开关}}); //开始按钮button2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ ON=0;}}); //暂停按钮button3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ R=1; //清零控制开关}}); //清零按钮button4.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){count=1; //记录控制开关a=String.valueOf(i);b=String.valueOf(j);c=String.valueOf(k);}}); //记录按钮button5.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){file.setText("");num=1;}}); //清除记录按钮while(true){validate();if(ON==1) //开始或暂停判断{file1.setText(String.valueOf(i));file2.setText(String.valueOf(j));file3.setText(String.valueOf(k));if(k==99){k=-1;j++;}if(j==60){k=0;j=0;i++;}if(i==24){i=0;j=0;k=0;}try{Thread.sleep(10);}catch(Exception e){}k++;}if(count==1)//记录判断{file.append(String.valueOf(num));file.append(". ");file.append(a);file.append(":");file.append(b);file.append(":");file.append(c);file.append("\n");num++;count=0;}if(R==1)//清零判断{i=j=k=0;file1.setText(String.valueOf(i));file2.setText(String.valueOf(j));file3.setText(String.valueOf(k));R=0;}}}}。
java钟表课程设计
java钟表课程设计一、课程目标知识目标:1. 学生能理解并掌握Java语言中面向对象编程的基本概念,如类、对象、属性、方法等;2. 学生能够运用Java语言编写一个简单的钟表程序,实现时间显示、时间更新等功能;3. 学生了解并掌握Java中事件处理机制,实现钟表界面的交互功能。
技能目标:1. 学生能够运用所学知识,独立完成一个具有基本功能的钟表程序设计;2. 学生通过实际编程操作,提高问题分析、程序设计、调试与优化的能力;3. 学生能够在团队协作中发挥自己的优势,与他人共同完成项目任务。
情感态度价值观目标:1. 学生通过课程学习,培养对编程的兴趣和热情,增强学习动力;2. 学生在课程实践中,体验编程解决问题的成就感,提高自信心;3. 学生在团队协作中,学会相互尊重、沟通与协作,培养良好的团队精神。
课程性质:本课程为实践性较强的课程,以项目驱动的方式进行教学,使学生能够将所学知识应用于实际项目中。
学生特点:本年级学生已经具备一定的Java编程基础,具有较强的学习能力和探究精神,对实际项目有较高的兴趣。
教学要求:结合学生特点,课程设计需注重实践操作,鼓励学生独立思考和团队协作,提高编程能力和解决问题的能力。
通过分解课程目标为具体学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 面向对象编程基础:- 类与对象的概念及其关系- 方法定义与调用- 属性的定义与使用2. Java界面设计:- Java Swing图形用户界面- 常用组件的使用(如按钮、文本框等)- 布局管理器的应用3. 事件处理机制:- 事件的概念与分类- 事件监听器与事件处理方法- 常用事件处理机制的应用4. 钟表程序设计:- 钟表界面设计- 时间更新功能的实现- 闹钟功能的添加与实现5. 项目实践与团队协作:- 学生分组,明确项目任务与分工- 各组制定项目计划,进行项目实践- 项目成果展示与评价教学内容安排与进度:第一周:面向对象编程基础,类与对象的概念,方法的定义与调用第二周:Java界面设计,Swing组件的使用,布局管理器的应用第三周:事件处理机制,编写简单的事件处理程序第四周:钟表程序设计,实现时间显示与更新,添加闹钟功能第五周:项目实践与团队协作,完成项目任务,进行成果展示与评价教材章节关联:《Java程序设计》第四章:面向对象编程基础第五章:Java图形用户界面设计第六章:事件处理三、教学方法1. 讲授法:- 对于面向对象编程基础、Java界面设计、事件处理机制等理论知识,采用讲授法进行教学,为学生提供清晰的知识框架和概念体系。
Java模拟时钟制作案例
程序代码
主类
程序代码
程序代码
运行效果
运行效果
面板刻度
绘制刻度
l1=new Line2D.Double[60]; for(int i=0 ;i<l1.length;i++) { double b[]=new double[4]; int j; if(i%5==0){ if(i%15==0){ j=50; }else { j=60; }
构建框架
主类time1. 实现接口。 继承Jframe。 添加main方法
完善代码
添加timer 通过Date获取当前时间 通过SimpleDateFormat处理时间格式。 实例化主类,使其在控制台打印当前时间, 每隔一秒打印一次。 修改后的代码如下。
程序代码
导入类和文件。
程序代码
数字时钟
添加JLabel,在JLabel上显示时间 把JLabel添加到JFrame上。
程序代码
导入类和文件。
程序代码
数字时钟
运行效果。
绘制秒针
使用直线绘制秒针。
定义秒针Line2D.Double l Line2D.Double l =new Line2D.Double(125,50,125,125);
面板刻度
绘制刻度
}else { j=70; } b[0]=125+80*Math.cos((i*6-90)*Math.PI/180d); b[1]=125+80*Math.sin((i*6-90)*Math.PI/180f); b[2]=125+j*Math.cos((i*6-90)*Math.PI/180f); b[3]=125+j*Math.sin((i*6-90)*Math.PI/180f); l1[i] =new Line2D.Double(b[0],b[1],b[2],b[3]); }
JAVA计时器秒表程序代码
J A V A计时器秒表程序代码文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]Java计时器(秒表)功能:能实现计时,暂停,清零,记录功能。
如下图:程序运行状态:源代码:import .*;import .*;importpublic class Test {public static void main(String[] args){new window("计时器");}}class window extends JFrame{int ON=0,i=0,j=0,k=0,count=0,num=1,R=0;JButton button1,button2,button3,button4,button5;JTextField file1,file2,file3;JTextArea file;FlowLayout flow;String a,b,c;window(String name){file1=new JTextField(2);file2=new JTextField(2);file3=new JTextField(2); (false);(false);(false);file=new JTextArea(10,8); (false);button1=new JButton("开始"); button2=new JButton("暂停"); button3=new JButton("清零"); button4=new JButton("记录"); button5=new JButton("清空记录"); flow=new FlowLayout();;(20);(10);setTitle(name);setSize(210,400);setLayout(flow);add(file1);add(new JLabel(":"));add(file2);add(new JLabel(":"));add(file3);add(button1);add(button2);add(button3);add(button4);add(button5);add(file);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE); ("0");("0");("0");validate();(new ActionListener() {public void actionPerformed(ActionEvent e) { ON=1; ");(a);(":");(b);(":");(c);("\n");num++;count=0;}if(R==1)//清零判断{i=j=k=0;(i));(j));(k));R=0;}}}}。
Java中System.currentTimeMillis()计算方式与时间单位转换讲解
Java中System.currentTimeMillis()计算⽅式与时间单位转换讲解⼀、时间的单位转换1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000 微秒(µs) 1微秒=1/1,000,000秒(s)1秒=1,000,000,000 纳秒(ns) 1纳秒=1/1,000,000,000秒(s)1秒=1,000,000,000,000 ⽪秒(ps) 1⽪秒=1/1,000,000,000,000秒(s)1分钟=60秒1⼩时=60分钟=3600秒⼆、System.currentTimeMillis()计算⽅式在开发过程中,通常很多⼈都习惯使⽤new Date()来获取当前时间。
new Date()所做的事情其实就是调⽤了System.currentTimeMillis()。
如果仅仅是需要或者毫秒数,那么完全可以使⽤System.currentTimeMillis()去代替new Date(),效率上会⾼⼀点。
如果需要在同⼀个⽅法⾥⾯多次使⽤new Date(),通常性能就是这样⼀点⼀点地消耗掉,这⾥其实可以声明⼀个引⽤。
//获得系统的时间,单位为毫秒,转换为妙long totalMilliSeconds = System.currentTimeMillis();long totalSeconds = totalMilliSeconds / 1000;//求出现在的秒long currentSecond = totalSeconds % 60;//求出现在的分long totalMinutes = totalSeconds / 60;long currentMinute = totalMinutes % 60;//求出现在的⼩时long totalHour = totalMinutes / 60;long currentHour = totalHour % 24;//显⽰时间System.out.println("总毫秒为: " + totalMilliSeconds);System.out.println(currentHour + ":" + currentMinute + ":" + currentSecond + " GMT");⼩例⼦:package demo.spli;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.TimeZone;public class ShowCurrentTime {/*** @显⽰当前时间* @2014.9.3*/public static void main(String[] args) {// TODO Auto-generated method stub//获得系统的时间,单位为毫秒,转换为妙long totalMilliSeconds = System.currentTimeMillis();DateFormat dateFormatterChina = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);//格式化输出TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");//获取时区这句加上,很关键。
java秒表课程设计
java秒表课程设计一、课程目标知识目标:1. 理解并掌握Java中线程的基本概念和使用方法,包括线程的创建、启动和同步。
2. 学会使用Java编程语言实现一个秒表功能,包括开始、停止、暂停、继续和重置等操作。
3. 了解并掌握Java中的事件处理机制,实现秒表界面与用户交互功能。
技能目标:1. 能够运用所学知识独立编写Java程序,实现一个具有基本功能的秒表。
2. 培养学生分析问题、解决问题的能力,通过编写代码解决实际应用问题。
3. 提高学生的团队协作能力,通过小组讨论、分工合作完成课程设计。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学生学习Java的热情,增强自信心。
2. 培养学生具备良好的编程习惯,注重代码规范,遵循编程道德。
3. 培养学生的创新意识,鼓励学生尝试不同的解决方案,勇于挑战自我。
本课程设计针对的是具有一定Java基础的学生,旨在巩固和拓展学生对Java 编程的掌握程度。
课程性质为实践性较强的课程设计,要求学生在学习过程中充分发挥主动性和创造性。
根据学生特点和教学要求,课程目标分解为具体的学习成果,以便于后续教学设计和评估。
通过本课程的学习,学生将能够独立完成一个Java秒表项目,提高编程实践能力和团队协作能力。
二、教学内容本章节教学内容主要包括以下几部分:1. 线程基本概念与使用方法:- 线程的创建与启动- 线程同步与线程通信- 线程的生命周期2. Java图形用户界面(GUI)编程:- Swing组件的使用- 事件处理机制- 布局管理器3. 秒表功能实现:- 秒表功能需求分析- 秒表界面设计- 逻辑代码编写4. 课程项目实践:- 小组分工与协作- 编程规范与调试技巧- 项目展示与评价教学内容安排和进度如下:第一周:线程基本概念与使用方法学习,完成相关练习题。
第二周:Java图形用户界面(GUI)编程学习,学习Swing组件的使用和事件处理。
第三周:分析秒表功能需求,设计秒表界面,编写逻辑代码。
Java获取精确到秒的时间戳方法
Java获取精确到秒的时间戳⽅法本⽂实例为⼤家分享了Android九宫格图⽚展⽰的具体代码,供⼤家参考,具体内容如下1、时间戳简介:时间戳的定义:通常是⼀个字符序列,唯⼀地标识某⼀刻的时间。
数字时间戳技术是数字签名技术⼀种变种的应⽤。
是指格林威治时间1970年01⽉01⽇00时00分00秒(北京时间1970年01⽉01⽇08时00分00秒)起⾄现在的总秒数(引⽤⾃百度百科)2、Java中的时间戳:在不同的开发语⾔中,获取到的时间戳的长度是不同的,例如C++中的时间戳是精确到秒的,但是Java中的时间戳是精确到毫秒的,这样在涉及到不同语⾔的开发过程中,如果不进⾏统⼀则会出现⼀些时间不准确的问题。
3、Java中的两种获取精确到秒的时间戳的⽅法:Java中的时间戳的毫秒主要通过最后的三位来进⾏计量的,我们通过两种不同的⽅式将最后三位去掉。
⽅法⼀:通过String.substring()⽅法将最后的三位去掉/*** 获取精确到秒的时间戳* @return*/public static int getSecondTimestamp(Date date){if (null == date) {return 0;}String timestamp = String.valueOf(date.getTime());int length = timestamp.length();if (length > 3) {return Integer.valueOf(timestamp.substring(0,length-3));} else {return 0;}}⽅法⼆:通过整除将最后的三位去掉/*** 获取精确到秒的时间戳* @param date* @return*/public static int getSecondTimestampTwo(Date date){if (null == date) {return 0;}String timestamp = String.valueOf(date.getTime()/1000);return Integer.valueOf(timestamp);}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
javaDate获取年月日时分秒的实现方法
一、使用`java.util.Calendar`类获取年月日时分秒:```import java.util.Calendar;public class DateUtilpublic static void main(String[] args)Calendar calendar = Calendar.getInstance(;int year = calendar.get(Calendar.YEAR);int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,需要加1int day = calendar.get(Calendar.DAY_OF_MONTH);int hour = calendar.get(Calendar.HOUR_OF_DAY);int minute = calendar.get(Calendar.MINUTE);int second = calendar.get(Calendar.SECOND);System.out.println("年:" + year);System.out.println("月:" + month);System.out.println("日:" + day);System.out.println("时:" + hour);System.out.println("分:" + minute);System.out.println("秒:" + second);}```以上代码中,我们首先通过`Calendar.getInstance(`方法获取一个`Calendar`实例,然后通过`get`方法传入对应的日期字段,如`Calendar.YEAR`获取年份,`Calendar.MONTH`获取月份(需要加1),`Calendar.DAY_OF_MONTH`获取日期,`Calendar.HOUR_OF_DAY`获取小时,`Calendar.MINUTE`获取分钟,`Calendar.SECOND`获取秒钟。
java钟表课程设计
java钟表课程设计一、教学目标本节课的学习目标包括:知识目标:学生需要掌握Java编程语言的基本语法和流程控制语句;理解面向对象编程的基本概念,如类、对象、封装、继承等。
技能目标:学生能够运用Java语言实现一个简单的钟表程序,包括时针、分针和秒针的移动,以及时间的显示;培养学生解决问题的能力和创新思维。
情感态度价值观目标:培养学生对编程的兴趣和热情,提高他们的自信心和自我成就感,培养团队合作意识和良好的编程习惯。
二、教学内容本节课的教学内容主要包括:1.Java编程语言的基本语法和流程控制语句,如变量、数据类型、运算符、条件语句、循环语句等。
2.面向对象编程的基本概念,如类、对象、封装、继承等,以及如何运用这些概念来实现一个简单的钟表程序。
3.钟表程序的实现,包括时针、分针和秒针的移动,以及时间的显示。
三、教学方法本节课的教学方法包括:1.讲授法:教师讲解Java编程语言的基本语法和流程控制语句,以及面向对象编程的基本概念。
2.案例分析法:教师通过分析一个简单的钟表程序的实现,引导学生理解和运用Java语言实现钟表功能。
3.实验法:学生分组进行实验,运用Java语言实现一个简单的钟表程序,培养学生的动手能力和创新思维。
四、教学资源本节课的教学资源包括:1.教材:Java编程语言的基础知识教材,用于引导学生学习基本语法和流程控制语句。
2.多媒体资料:PPT课件,用于展示钟表程序的实现过程和示例代码。
3.实验设备:计算机和网络设备,用于学生分组进行实验,实现钟表程序。
五、教学评估本节课的评估方式包括:1.平时表现:评估学生的出勤、课堂参与度、提问回答等情况,以了解学生的学习态度和积极性。
2.作业:评估学生提交的作业,包括钟表程序的代码实现和相关的练习题,以检验学生对Java编程语言和钟表程序的理解和掌握程度。
3.考试:设计一份考试,包括选择题、填空题和编程题,以全面评估学生对Java编程语言和钟表程序的掌握情况。
java中将小时转化为时分秒的方法
java中将小时转化为时分秒的方法Java中将小时转化为时分秒的方法1. 使用类•使用``类来表示一段时间•首先,将小时数转化为毫秒数durationInMillis = hours * 60 * 60 * 1000•然后使用()方法来创建一个Duration对象•最后,使用toHours(),toMinutes(),toSeconds()等方法获取时分秒import ;public class TimeConversion {public static void main(String[] args) {int hours = 2;long durationInMillis = hours * 60 * 60 * 1000; Duration duration = (durationInMillis);long hoursPart = ();long minutesPart = () % 60;long secondsPart = () % 60;(hoursPart + "小时 " + minutesPart + "分钟 " + s econdsPart + "秒");}}2. 使用类•使用``类来表示一段时间单位•首先,将小时数转化为分钟数totalMinutes = (hours)•然后使用totalMinutes来计算小时、分钟、秒数import ;public class TimeConversion {public static void main(String[] args) {int hours = 2;long totalMinutes = (hours);long hoursPart = totalMinutes / 60;long minutesPart = totalMinutes % 60;long secondsPart = minutesPart * 60;(hoursPart + "小时 " + minutesPart + "分钟 " + s econdsPart + "秒");}}3. 使用纯算术运算•直接通过纯算术运算来将小时数转化为时分秒•首先,计算小时部分hoursPart = hours•然后计算分钟部分minutesPart = (hours - hoursPart) * 60•最后计算秒数secondsPart = (hours - hoursPart - minutesPart/60) * 60 * 60public class TimeConversion {public static void main(String[] args) {double hours = ;int hoursPart = (int) hours;int minutesPart = (int) ((hours - hoursPart) * 6 0);int secondsPart = (int) ((hours - hoursPart - mi nutesPart / ) * 60 * 60);(hoursPart + "小时 " + minutesPart + "分钟 " + s econdsPart + "秒");}}以上就是在Java中将小时转化为时分秒的几种方法。
java计时器 高级写法
java计时器高级写法Java计时器高级写法在Java中,计时器是一个常用的工具,用于在应用程序中执行定时任务。
它可以帮助我们实现定时执行任务的功能,无论是在后台运行任务还是按照一定的时间间隔执行任务。
在本文中,我们将讨论如何使用Java编写高级的计时器。
第一步:引入必要的类和包Java中提供了一些内置的类和包,以帮助我们实现计时器。
首先,我们需要导入java.util包,该包包含了`Timer`和`TimerTask`类,这两个类是Java 计时器的核心组件。
javaimport java.util.Timer;import java.util.TimerTask;第二步:创建一个继承自TimerTask类的自定义任务在Java计时器中,我们可以通过创建一个继承自`TimerTask`类的自定义任务来执行我们想要定时执行的操作。
为了演示这一点,让我们创建一个简单的任务,该任务打印当前时间。
javapublic class CustomTask extends TimerTask {Overridepublic void run() {System.out.println("当前时间:" + new Date());}}上述代码中,我们创建了一个名为`CustomTask`的类,该类继承了`TimerTask`类,并重写了其中的`run`方法。
在`run`方法中,我们使用`System.out.println`语句打印了当前时间。
第三步:创建一个Timer对象并调度任务接下来,我们需要创建一个`Timer`对象,并使用其`schedule`方法调度刚刚创建的自定义任务。
`schedule`方法有多个重载版本,我们在这里使用的是其中的一个版本,该版本可以指定任务的延迟时间和执行间隔。
javapublic class Main {public static void main(String[] args) {Timer timer = new Timer();CustomTask customTask = new CustomTask();任务在延迟1秒后开始执行,然后每次间隔1秒执行一次timer.schedule(customTask, 1000, 1000);}}在上述代码中,我们创建了一个`Timer`对象,并实例化了刚刚创建的`CustomTask`类。
java秒表程序
一个java的秒表程序import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Stopwatch extends JFrame implements ActionListener {JTextArea timeArea; //时间显示JButton startBtn,pauseBtn,resetBtn;int min=0,sec=0,mSec=0;Timer timer;public Stopwatch(String str){super(str);Container contentPane=getContentPane();contentPane.setLayout(new BorderLayout());//北边:时间显示区域timeArea=new JTextArea("",1,12);timeArea.setFont(new Font("隶书",Font.ITALIC,24));timeArea.setText("00:00:00");contentPane.add(timeArea,BorderLayout.NORTH);//中间:启动和暂停按钮JPanel pCenter=new JPanel(new GridLayout(1,2));startBtn=new JButton("开始");pCenter.add(startBtn);startBtn.addActionListener(this);pauseBtn=new JButton("暂停");pCenter.add(pauseBtn);pauseBtn.addActionListener(this);contentPane.add(pCenter,BorderLayout.CENTER);//南边:复位按钮resetBtn=new JButton("复位");resetBtn.addActionListener(this);contentPane.add(resetBtn,BorderLayout.SOUTH);timer=new Timer(10,this);//设定定时器周期为10毫秒pack();setVisible(true);}public void actionPerformed(ActionEvent e){String timeStr,str1,str2,str3;if(e.getSource()==timer){//时间更新mSec++;if(mSec==100){mSec=0;sec++;}if(sec==60){sec=0;min++;}if(min==60) min=0;//显示新时间if(min<10)str1="0"+min+":";elsestr1=min+":";if(sec<10)str2="0"+sec+":";elsestr2=sec+":";if(mSec<10)str3="0"+mSec;elsestr3=mSec+"";timeStr=str1+str2+str3;timeArea.setText(timeStr);}if(e.getSource()==startBtn){timer.start();}if(e.getSource()==pauseBtn){timer.stop();}if(e.getSource()==resetBtn){min=0;sec=0;mSec=0;}}public static void main(String args[]){Stopwatch s=new Stopwatch("秒表--stopwatch");}}。
java钟表程序
一个java的钟表程序import java.awt.*;import java.util.*;import javax.swing.*;import java.awt.event.*;public class Clock extends JPanel{int CLOCK_RADIUS=200;int X_CENTER=300,Y_CENTER=300;static int second,minute,hour;static int year,month,day,week;int xSecond,ySecond;int xMinute,yMinute;int xHour,yHour;String timeStr,str1,str2,str3;static String dateStr;javax.swing.Timer timer;static String weekDisp[]={"一","二","三","四","五","六","日"};public Clock(){setBackground(Color.white);setSize(800,800);ActionListener clockTik=new ActionListener(){public void actionPerformed(ActionEvent ec){second++;if(second==60){second=0;minute++;}if(minute==60){minute=0;hour++;}if(hour==13) hour=1;repaint();}};new javax.swing.Timer(1000,clockTik).start();}public void paint(Graphics g){int xPos,yPos;double alfa;super.paint(g);for(int i=0,num=12;i<360;i+=6){alfa=Math.toRadians(i);xPos=X_CENTER+(int)(CLOCK_RADIUS*Math.sin(alfa));yPos=Y_CENTER-(int)(CLOCK_RADIUS*Math.cos(alfa));if(i%30==0){if (num%3==0)g.setColor(Color.red);elseg.setColor(Color.black);g.drawString(""+num,xPos-5,yPos+3);num=(num+1)%12;}else{g.setColor(Color.black);g.drawString(".",xPos,yPos);}}g.fillOval(X_CENTER-4,Y_CENTER-4,8,8); //表盘中心//画秒针xSecond=(int)(X_CENTER+(CLOCK_RADIUS-10)*Math.sin(second*(2*Math.PI/60)));ySecond=(int)(Y_CENTER-(CLOCK_RADIUS-10)*Math.cos(second*(2*Math.PI/60)));g.setColor(Color.red);g.drawLine(X_CENTER,Y_CENTER,xSecond,ySecond);//画分针xMinute=(int)(X_CENTER+(CLOCK_RADIUS-40)*Math.sin((minute+second/60)*(2*3.14/60)));yMinute=(int)(Y_CENTER-(CLOCK_RADIUS-40)*Math.cos((minute+second/60)*(2*3.14/60)));g.setColor(Color.red);g.drawLine(X_CENTER,Y_CENTER,xMinute,yMinute);//画时针xHour=(int)(X_CENTER+(CLOCK_RADIUS-70)*Math.sin((hour+minute/60+second/(60*60))*(2*3.14/12))); yHour=(int)(Y_CENTER-(CLOCK_RADIUS-70)*Math.cos((hour+minute/60+second/(60*60))*(2*3.14/12)));g.setColor(Color.red);g.drawLine(X_CENTER,Y_CENTER,xHour,yHour);//显示文字式样的时间if(hour<10)str1="0"+hour+":";elsestr1=hour+":";if(minute<10)str2="0"+minute+":";elsestr2=minute+":";if(second<10)str3="0"+second;elsestr3=second+"";timeStr=str1+str2+str3;g.setFont(new Font("隶书",Font.ITALIC,20));g.drawString(timeStr,X_CENTER-40,Y_CENTER+CLOCK_RADIUS+50);g.drawString(dateStr,X_CENTER-90,Y_CENTER-CLOCK_RADIUS-50);}public void paintComponent(Graphics g)// 该方法自动调用,每次重画背景时删去原来的表盘{super.paintComponent(g);}public static void main(String args[]){JFrame clockFrame=new JFrame("钟表--clock");Container contentPane=clockFrame.getContentPane();clockFrame.setSize(800,800);//获取系统时间Calendar calendar = new GregorianCalendar();/*Date date = new Date();calendar.setTime(date);*/second=calendar.get(Calendar.SECOND);minute=calendar.get(Calendar.MINUTE);hour=calendar.get(Calendar.HOUR);if(hour>12) hour=hour-12;year=calendar.get(Calendar.YEAR);month=calendar.get(Calendar.MONTH)+1;day=calendar.get(Calendar.DAY_OF_MONTH);week=calendar.get(Calendar.DAY_OF_WEEK);dateStr=year+"年"+month+"月"+day+"日"+"星期"+weekDisp[week-1];Clock clock=new Clock();contentPane.add(clock,BorderLayout.CENTER);clockFrame.pack();clockFrame.setVisible(true);}}。
Java实现的计时器【秒表】功能示例
while (true) { if (!stopped) { long elapsed = System.currentTimeMillis() - programStart - pauseCount; label.setText(format(elapsed)); } try { sleep(1); // 1毫秒更新一次显示 } catch (InterruptedException e) { e.printStackTrace(); System.exit(1); }
} }; private ActionListener resetButtonListener = new ActionListener() {
public void actionPerformed(ActionEvent e) { pauseStart = programStart; pauseCount = 0; thread.stopped = true; label.setText(INITIAL_LABEL_TEXT); startPauseButton.setText("开始");
} }; public Timer(String title) throws HeadlessException {
super(title); setDefaultCloseOperation(EXIT_ON_CLOSE); setLocation(300, 300); setResizable(false));
应用名称:Java计时器
用到的知识:Java GUI编程
开发环境:win8+eclipse+jdk1.8
java中使用StopWatch来计算时间差
java中使⽤StopWatch来计算时间差以前在进⾏时间耗时时我们通常的做法是先给出计算前后两个的时间值,然后通过详见来计算耗时时长。
eg:long start = System.currentTimeMillis();......业务处理System.out.println("耗时:" + (System.currentTimeMillis() - start) + "ms");我们可以使⽤已有的⼯具类中的秒表来替代上述的使⽤⽅式,现有的秒表⼯具类有org.springframework.util.StopWatch、ng.time.StopWatch,这⾥以Spring的StopWatch类为例:public static void main(String[] args) throws InterruptedException{StopWatch stopWatch = new StopWatch("任务耗时秒表⼯具");stopWatch.start("task1");Thread.sleep(1000);stopWatch.stop();System.out.println(stopWatch.getTotalTimeMillis());stopWatch.start("task2");Thread.sleep(3000);stopWatch.stop();//所有任务耗时时间System.out.println(stopWatch.getTotalTimeMillis());System.out.println(stopWatch.prettyPrint());StopWatch stopWatch2 = new StopWatch("任务耗时秒表⼯具2");stopWatch2.start("task3");Thread.sleep(3000);stopWatch2.stop();//所有任务耗时时间System.out.println(stopWatch2.getTotalTimeMillis());System.out.println(stopWatch2.prettyPrint());}。
JAVA秒表程序多线程实现
if(obj==starButton)//对象为开始按钮时 {
if(!isRun) {
isRun=true; starTime=System.currentTimeMillis(); watchThread.start(); }
}
else if (obj==stopButton)//对象为暂停按钮时 {
{ str=str+ "0" + second + ":";
} else {
java 毫秒转换成时分秒的方法
java 毫秒转换成时分秒的方法Java中毫秒转换成时分秒的方法可以通过以下步骤实现。
步骤一:获取毫秒数我们需要获取到需要转换的毫秒数。
可以通过用户输入或者其他方式获取到需要转换的毫秒数。
步骤二:计算小时数将获取到的毫秒数除以3600000(1小时等于3600秒,1秒等于1000毫秒),得到的结果即为小时数。
需要注意的是,这里需要使用整数除法,以得到整数的小时数。
步骤三:计算分钟数将获取到的毫秒数除以60000(1分钟等于60秒,1秒等于1000毫秒),得到的结果即为分钟数。
同样需要使用整数除法。
步骤四:计算剩余秒数将获取到的毫秒数除以1000,得到的结果即为剩余的秒数。
同样需要使用整数除法。
步骤五:输出结果将计算得到的小时数、分钟数和剩余秒数按照需要的格式输出即可。
下面是一个简单的Java代码示例,演示了如何将毫秒转换成时分秒:```javaimport java.util.Scanner;public class MillisecondsToTime {public static void main(String[] args) {// 获取用户输入的毫秒数Scanner scanner = new Scanner(System.in);System.out.println("请输入需要转换的毫秒数:");long milliseconds = scanner.nextLong();// 计算小时数long hours = milliseconds / 3600000;// 计算分钟数long minutes = (milliseconds % 3600000) / 60000;// 计算剩余秒数long seconds = ((milliseconds % 3600000) % 60000) / 1000;// 输出结果System.out.println("转换结果为:" + hours + "小时" + minutes + "分钟 " + seconds + "秒");}}```运行上述代码,用户输入需要转换的毫秒数后,程序会将其转换成对应的小时数、分钟数和秒数,并输出结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class StopWatch extends JFrame {
boolean secStart = false; //秒表线程启动控制
JFrame jf = new JFrame("Stop Watch");
JTextField jtf = new JTextField();
TextArea jta = new TextArea();
JButton jb4 = new JButton("DELETE");
JButton jb1 = new JButton("START");
JButton jb3 = new JButton("STOP");
JButton jb2 = new JButton("NEXT");
JPanel jp1 = new JPanel();
//构造方法
public StopWatch() {
jf.setSize(500, 400); //定义form大小
jf.setVisible(true);
jf.setResizable(false);
jtf.setPreferredSize(new Dimension(300, 25)); //定义jtf的首选大小jp1.setPreferredSize(new Dimension(300, 25)); //定义jp1的首选大小jta.setPreferredSize(new Dimension(300, 25)); //定义jta的首选大小jta.setBackground(Color.GREEN);
jf.add(jtf, BorderLayout.NORTH);
jf.add(jta, BorderLayout.CENTER);
jf.add(jp1, BorderLayout.SOUTH);
jp1.setLayout(new GridLayout(1, 4));
jp1.add(jb1);
jp1.add(jb2);
jp1.add(jb3);
jp1.add(jb4);
jb1.addActionListener(new Listener());
jb2.addActionListener(new Listener());
jb3.addActionListener(new Listener());
jb4.addActionListener(new Listener());
}
// 为""添加Listener类
class Listener implements ActionListener {
//实例化线程
Thread secTime = new Thread(new MilSec());
int i = 0;
public void actionPerformed(ActionEvent e) {
Object tag = e.getSource();
if(tag == jb4){
jtf.setText(""); //清空jtf时间
if(!jta.getText().equals("")){
jta.setText("记录已清空"); //清空jta记录}
} else if(tag == jb1){
if(jtf.getText().equals("")){
secStart = true; //秒表线程启动标志true;
} secTime.start(); //启动秒表线程
jta.setText("");
} else if(tag == jb3){
if(secStart == true) {
secStart = false;
}
} else if(tag == jb2){
i++; //名次计算
if(!secStart) {
jta.setText("操作有误,请按START键开始");
} else {
jta.setText(jta.getText() + "第" + i + "名" + jtf.getText() + '\n' + '\n');
}
}
}
}
// 定义秒表开始的线程类
class MilSec implements Runnable {
private int milsec = 0;
private int sec = 0;
private int min = 0;
public void run() {
while (secStart) {
milsec++;
if(milsec == 100) {
milsec = 0;
sec = sec + 1;
if(sec == 60) {
sec = 0;
min = min + 1;
}
}
jtf.setText("现在时间为:" +Integer.toString(min) + ":" + Integer.toString(sec)+ ":"
+Integer.toString(milsec) );
//设置毫秒数
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(milsec);
System.out.println(sec);
System.out.println(min);
}
}
}
public static void main(String[] args) { new StopWatch();
}
}
代码运行结果图示:。