利用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定时器用法详解一、简介Java定时器(Timer)是Java编程语言中用于实现定时任务的一种工具。
它允许开发者在指定的时间间隔内执行特定的代码块,从而实现定时操作。
本文将详细介绍Java定时器的用法,包括创建定时器、设置任务、启动和停止定时器等内容。
二、创建定时器在Java中,要使用定时器,首先需要导入`java.util.Timer`类。
创建定时器的方法如下:import java.util.Timer;public class MyTimer {public static void main(String[] args) {Timer timer = new Timer();}}三、设置任务定时器的核心功能是执行定时任务,因此需要为定时器设置一个任务。
在Java 中,可以通过创建一个继承自`java.util.TimerTask`的类来实现定时任务。
以下是一个简单的示例:import java.util.TimerTask;class MyTask extends TimerTask {@Overridepublic void run() {System.out.println("定时任务执行");}}四、启动定时器创建好定时器和任务后,接下来需要启动定时器。
可以使用`schedule()`方法来设置定时器的任务和执行间隔。
以下是一个完整的示例:import java.util.Timer;import java.util.TimerTask;class MyTask extends TimerTask {@Overridepublic void run() {System.out.println("定时任务执行");}}public class MyTimer {public static void main(String[] args) {Timer timer = new Timer();MyTask task = new MyTask();timer.schedule(task, 0, 1000); // 立即执行,然后每隔1秒执行一次}}五、停止定时器在某些情况下,可能需要停止定时器的执行。
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日历小程序
java日历小程序简介:Java日历小程序是一个基于Java语言开发的工具,用于显示和管理日期和时间。
它提供了一种简单而直观的方式来查看、创建和编辑日历事件,并提供了一些额外的功能,如提醒、重复事件和时间段的计算等。
本文将详细介绍Java日历小程序的功能、使用方法和设计原理。
功能:1. 显示日历:Java日历小程序可以显示当前月份的日历,并以日、周或月的形式展示。
用户可以通过界面上的上下翻页按钮切换月份,方便查看不同日期的日历。
2. 创建和编辑事件:用户可以通过Java日历小程序创建新的日历事件,并为每个事件指定标题、日期、时间和地点等详细信息。
程序还提供了事件编辑功能,允许用户修改已有事件的信息。
3. 提醒功能:Java日历小程序可以设置事件的提醒功能,提醒用户在指定的时间前提醒。
用户可以选择在事件开始前几分钟、几小时或几天提醒,并可以自定义提醒方式,如弹窗、声音或邮件通知等。
4. 重复事件:用户可以为事件设置重复功能,使事件在指定的日期间隔内重复发生。
可以选择每天、每周、每月或每年重复,并可以设置重复的结束日期。
5. 时间段计算:Java日历小程序可以计算两个日期之间的时间段,如计算两个事件之间的天数、小时数或分钟数等。
用户可以选择计算方式,并获取精确的时间段结果。
使用方法:1. 下载和安装:用户可以从官方网站上下载Java日历小程序的安装包,然后按照安装向导进行安装。
安装完成后,用户可以在桌面或开始菜单中找到程序的快捷方式。
2. 打开程序:双击程序的快捷方式,Java日历小程序将启动并显示当前月份的日历。
用户可以通过界面上的按钮和菜单来使用各种功能。
3. 创建事件:用户可以点击界面上的“添加事件”按钮,弹出一个对话框,输入事件的详细信息,如标题、日期、时间和地点等。
点击“确定”按钮后,事件将被创建并显示在日历上。
4. 编辑事件:用户可以在日历上点击已有的事件,弹出一个对话框,允许用户修改事件的信息。
javaTimer定时每天凌晨1点执行任务
javaTimer定时每天凌晨1点执⾏任务下⾯给⼤家介绍java Timer 定时每天凌晨1点执⾏任务,具体代码如下所⽰:import java.util.TimerTask;/*** 执⾏内容* @author admin_Hzw**/public class Task extends TimerTask {public void run() {System.out.println("我有⼀头⼩⽑驴!");}}import java.util.Calendar;import java.util.Date;import java.util.Timer;/*** 任务管理* @author admin_Hzw**/public class TimerManager {/*** @param args*/public static void main(String[] args) {new TimerManager();}//时间间隔(⼀天)private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;public TimerManager() {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY, 1); //凌晨1点calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);Date date=calendar.getTime(); //第⼀次执⾏定时任务的时间//如果第⼀次执⾏定时任务的时间⼩于当前的时间//此时要在第⼀次执⾏定时任务的时间加⼀天,以便此任务在下个时间点执⾏。
如果不加⼀天,任务会⽴即执⾏。
if (date.before(new Date())) {date = this.addDay(date, 1);}Timer timer = new Timer();Task task = new Task();//安排指定的任务在指定的时间开始进⾏重复的固定延迟执⾏。
Java数字时钟(简单的桌面应用)
import java.util.*;/*****该程序是一个简单的数字时钟,每变化一秒,颜色随机变色,可以系统托盘,最大的特点是可以和桌面形成一体,也就是容纳这个数字时钟的窗体可以看成是透明的***********/import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.awt.image.BufferedImage;public class app509 extends JFrame{static int i=-1,geli=-1;/*这一部分是系统托盘图标的文件路径,可以自己设置,只要路径正确即可,可以是gif,jpg,png格式*/static Image image=Toolkit.getDefaultToolkit().getImage("D:1\\3.png");static SystemTray systemTray=SystemTray.getSystemTray();static PopupMenu pop01=new PopupMenu();static MenuItem MI01=new MenuItem("打开主程序");static MenuItem MI02=new MenuItem("退出程序");static MenuItem MI03=new MenuItem("隐藏");static TrayIcon trayIcon=new TrayIcon(image,"这是程序图标",pop01);static JLabel beijingtu=new JLabel();static JLabel xingqi=new JLabel(" ",JLabel.CENTER);static JLabel jlabel02=new JLabel("年",JLabel.CENTER);static JLabel jlabel03=new JLabel("月",JLabel.CENTER);static JLabel jlabel04=new JLabel("日",JLabel.CENTER);static JLabel jlabel05=new JLabel("分",JLabel.CENTER);static JLabel jlabel10=new JLabel("时",JLabel.CENTER);static JLabel jlabel12=new JLabel("分",JLabel.CENTER);static JLabel jlabel13=new JLabel("秒",JLabel.CENTER);static JLabel jlabel06=new JLabel(" ",JLabel.CENTER);static JLabel jlabel07=new JLabel(" ",JLabel.CENTER);static JLabel jlabel08=new JLabel(" ",JLabel.CENTER);static JLabel jlabel09=new JLabel(" ",JLabel.CENTER);static JLabel jlabel11=new JLabel(" ",JLabel.CENTER);static JLabel jlabel=new JLabel(" ",JLabel.CENTER);static JLabel jbData[]={jlabel13,jlabel02,jlabel03,jlabel04,jlabel10,jlabel12};static JLabel jbData02[]={jlabel,jlabel07,jlabel08,jlabel09,jlabel11,jlabel06};static int mill=0;static int minute=0;static int hour=0;static int day=0;static int month=0;static int year=0;static int week;static int zuobiaoX,zuobiaoY;static JFrame JF01=new JFrame();static JDialog JF=new JDialog(JF01," ");static Robot robot;static BufferedImage image1;static Rectangle rec;static class mouseListener extends MouseAdapter{public void mouseClicked(MouseEvent a){if(a.getSource()==trayIcon){if(a.getClickCount()==2){i++;if(i%2==1){geli++;if(geli%2==1){image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));JF.setBounds(0,0,120,560);JF.setVisible(true);}}else{JF.setBounds(0,0,400,1);}}}}public void mouseEntered(MouseEvent a){if(a.getSource()==JF){image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));JF.setBounds(0,0,120,560);JF.setVisible(true);}}public void mouseExited(MouseEvent a){if(a.getSource()==JF){JF.setBounds(0,0,400,1);}}}public static void main(String args[]) throws Exception{trayIcon.addMouseListener(new mouseListener());rec=new Rectangle(0,0,(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(),(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight());try{robot=new Robot(); }catch(Exception b){}image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));MI01.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent a){Image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));JF.setBounds(0,0,120,560);JF.setVisible(true);}});MI03.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent a){JF.setBounds(0,0,400,1);}});MI02.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent a){System.exit(0);}});try{pop01.add(MI01);pop01.add(MI03);pop01.add(MI02);systemTray.add(trayIcon);trayIcon.setImageAutoSize(true);trayIcon.addMouseListener(new mouseListener());}catch(Exception a){} JF.setResizable(false) ;JF.addMouseListener(new mouseListener());JF.setUndecorated(true);beijingtu.setBounds(0,0,(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(),(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight());JF.setLayout(null);JF.setBounds(0,0,120,560);JF.setVisible(true);jlabel02.setBounds(91,94,24,25);jlabel06.setBounds(15,94,64,28);jlabel03.setBounds(91,175,24,25);jlabel07.setBounds(2,125,86,75);jlabel04.setBounds(91,261,24,25);jlabel08.setBounds(2,210,86,75);jlabel10.setBounds(91,346,24,25);jlabel09.setBounds(2,296,86,75);jlabel11.setBounds(2,382,86,75);jlabel12.setBounds(91,433,24,25);jlabel13.setBounds(91,520,24,25);jlabel.setBounds(2,468,86,75);xingqi.setBounds(2,30,118,62);JF.add(xingqi);xingqi.setHorizontalTextPosition(JLabel.CENTER);xingqi.setFont(new Font("微软雅黑",Font.BOLD,20));for(int i=0;i<jbData.length;i++){JF.add(jbData[i]);JF.add(jbData02[i]);}for(int i=0;i<jbData.length;i++){jbData[i].setFont(new Font("微软雅黑",Font.BOLD,15));jbData02[i].setFont(new Font("微软雅黑",Font.BOLD,30));}jlabel06.setFont(new Font("微软雅黑",Font.BOLD,15));for(int i=0;i<jbData.length;i++){jbData[i].setForeground(Color.blue);jbData02[i].setForeground(Color.red);}for(int i=0;i<jbData.length;i++){jbData[i].setHorizontalTextPosition(JLabel.CENTER);jbData02[i].setHorizontalTextPosition(JLabel.CENTER);}jlabel02.setHorizontalTextPosition(JLabel.RIGHT);JF.add(beijingtu);xiancheng xiancheng01=new xiancheng();xiancheng01.start();}}class xiancheng extends Thread{static GregorianCalendar date=new GregorianCalendar();app509 app=new app509();public void run(){for(int i=0;i<60;){try{sleep(1000);}catch(Exception a){}app.year=(date=new GregorianCalendar()).get(date.YEAR);app.jlabel06.setText(Integer.toString(app.year));app.month=((date=new GregorianCalendar()).get(date.MONTH)+1);app.jlabel07.setText(Integer.toString(app.month));app.day=(date=new GregorianCalendar()).get(date.DAY_OF_MONTH);app.jlabel08.setText(Integer.toString(app.day));app.week=(date=new GregorianCalendar()).get(date.DAY_OF_WEEK);app.hour=(date=new GregorianCalendar()).get(date.HOUR_OF_DAY);app.jlabel09.setText(Integer.toString(app.hour));app.minute=(date=new GregorianCalendar()).get(date.MINUTE);app.jlabel11.setText(Integer.toString(app.minute));l=(date=new GregorianCalendar()).get(date.SECOND);app.jlabel.setText(Integer.toString(l));if(app.jlabel.getText()!=" "){app.xingqi.setForeground(new Color((int)(255*Math.random()),(int)(255*Math.random()),(int)(255*Math.random())));for(int j=0;j<app.jbData.length;j++){app.jbData[j].setForeground(new Color((int)(255*Math.random()),(int)(255*Math.random()),(int)(255*Math.random())));app.jbData02[j].setForeground(new Color((int)(255*Math.random()),(int)(255*Math.random()),(int)(255*Math.random())));}} switch(app.week){case 1 : app.xingqi.setText("星期日");break;case 2 : app.xingqi.setText("星期一");break;case 3 : app.xingqi.setText("星期二");break;case 4 : app.xingqi.setText("星期三");break;case 5 : app.xingqi.setText("星期四");break;case 6 : app.xingqi.setText("星期五");break;case 7 : app.xingqi.setText("星期六");break;}System.gc();}}}/****复制以上代码进行编译即可*****/程序效果图:。
倒计时小程序(微信小程序使用小程序框架开发)
倒计时小程序(微信小程序使用小程序框架开发)在微信小程序开发中,倒计时小程序是一种常见的应用。
倒计时功能可以用于各种场景,如活动倒计时、会议倒计时等。
本文将介绍如何使用小程序框架开发一个简单的倒计时小程序。
首先,我们需要创建一个新的微信小程序项目。
打开微信开发者工具,点击“新建小程序”,填写相应的信息,并选择使用小程序框架进行开发。
倒计时小程序的页面主要分为两个部分:倒计时展示和操作按钮。
下面我们分别介绍这两个部分的实现。
一、倒计时展示在微信小程序的页面文件中(通常是一个.wxml文件),我们可以使用小程序框架提供的组件来实现倒计时的展示。
例如,我们可以使用text组件来显示倒计时的小时、分钟和秒数。
在样式文件中(通常是一个.wxss文件),我们可以设置text组件的样式,如字体颜色、字体大小等。
在逻辑文件中(通常是一个.js文件),我们需要定义一个计时器函数来更新倒计时的时间,并将其绑定到页面中。
当倒计时结束,我们可以显示一个提示信息或执行其他操作。
二、操作按钮在倒计时小程序中,我们通常会提供一些操作按钮,如开始倒计时、暂停倒计时、重置倒计时等。
这些按钮可以使用button组件来实现,并在逻辑文件中定义相应的事件处理函数。
在事件处理函数中,我们可以调用小程序框架提供的计时器函数来实现倒计时的开始、暂停和重置。
例如,当用户点击“开始”按钮时,我们可以调用setInterval函数来每秒更新倒计时的时间;当用户点击“暂停”按钮时,我们可以调用clearInterval函数来停止计时器;当用户点击“重置”按钮时,我们可以重新设置倒计时的时间。
通过以上步骤,我们就可以实现一个基本的倒计时小程序。
当然,根据具体需求,我们还可以增加其他功能,如倒计时结束后的提示动画、倒计时的持久化等。
在开发小程序过程中,我们还需要注意以下几点:1. 页面布局要合理,保证用户体验良好。
2. 减少不必要的请求,提高小程序的性能。
日历应用使用ReactNative和JavaScript开发的小程序
日历应用使用ReactNative和JavaScript开发的小程序日历是我们日常生活中必不可少的工具之一,随着技术的发展,手机日历应用成为我们管理时间的重要助手。
本文将介绍一个使用ReactNative和JavaScript开发的小程序,该小程序能够提供完善的日历功能,满足用户对时间管理的需求。
一、介绍在移动应用开发中,ReactNative是一种流行的开发框架,它基于JavaScript语言,可以同时为iOS和Android平台开发应用。
结合ReactNative和JavaScript的特性,我们可以开发出高效、易用的日历应用。
二、开发环境搭建在开始开发日历应用之前,我们需要准备好开发环境。
首先,安装Node.js以及npm包管理器。
接着,通过命令行安装ReactNative命令行工具。
然后,创建一个新的ReactNative项目,并安装所需的依赖。
三、设计与布局在日历应用中,设计和布局是非常重要的。
我们需要考虑用户界面的美观性和易用性。
通过合理的布局和配色方案,我们可以提供给用户一种舒适的使用体验。
四、日历视图日历视图是日历应用的核心组件,它显示了用户所选择的日期的详细信息。
我们可以使用ReactNative提供的组件来构建日历视图,比如ScrollView、View和Text等。
五、日期选择日期选择是日历应用的一个重要功能,它允许用户选择一个特定的日期,并查看该日期的详细信息。
我们可以使用ReactNative提供的DatePicker组件来实现日期选择功能。
六、事件提醒除了基本的日期管理功能,日历应用还应该提供事件提醒功能,让用户可以添加和管理个人的日程安排。
我们可以使用ReactNative提供的Alert组件来实现事件提醒功能。
七、数据存储为了保证用户数据的安全性和可靠性,我们需要将用户的日历数据进行存储。
可以使用ReactNative提供的AsyncStorage组件来实现数据的本地存储功能。
用java.util.Timer定时执行任务
用java.util.Timer定时执行任务1.新建一个task 实现run方法2.Timer t = new Time()3. T.schedule(task );等等4个方法去执行如果要在程序中定时执行任务,可以使用java.util.Timer这个类实现。
使用Timer类需要一个继承了java.util.TimerTask的类。
TimerTask是一个虚类,需要实现它的run方法,实际上是他implements了Runnable接口,而把run方法留给子类实现。
下面是我的一个例子:class Worker extends TimerTask {public void run() {System.out.println("我在工作啦!");}}Timer类用schedule方法或者scheduleAtFixedRate方法启动定时执行,schedule 重载了四个版本,scheduleAtFixedRate重载了两个。
每个方法的实现都不同,下面是每个方法的说明:schedulepublic void schedule(TimerTask task,long delay)Schedules the specified task for execution after the specified delay.Parameters:task - task to be scheduled.delay - delay in milliseconds before task is to be executed.Throws:IllegalArgumentException - if delay is negative, or delay +System.currentTimeMillis() is negative.IllegalStateException- if task was already scheduled or cancelled, or timer was cancelled.说明:该方法会在设定的延时后执行一次任务。
java得到年月日小时分秒
获得年月日小时分秒java得到年月日小时分秒推荐 Calendar cal=Calendar.getInstance();cal.setTime(new Date());int year=cal.get(Calendar.YEAR);int month=cal.get(Calendar.MONTH)+1;int date=cal.get(Calendar.DATE);int hour=cal.get(Calendar.HOUR);int minute=cal.get(Calendar.MINUTE);int second=cal.get(Calendar.SECOND);int milliSecond=cal.get(LISECOND);SimpleDateFormat格式化日期import java.text.SimpleDateFormat;import java.util.Date;public class test {public static void main(String []aa){SimpleDateFormat dateformat1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");String a1=dateformat1.format(new Date());System.out.println("时间2:"+a1);System.out.println(new Date().getYear()+1900);SimpleDateFormat dateformat2=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E "); String a2=dateformat2.format(new Date());System.out.println("时间2:"+a2);}}执行结果:时间2:2006-12-21 14:40:59 星期四2006时间2:2006年12月21日 14时40分59秒星期四java.util.Calendar对于日期的处理非常的方便,如newDate.set(Calendar.MONTH, 12); //加12个月,newDate.set(Calendar.DATE, -1); //前一天import java.text.SimpleDateFormat;import java.util.Date;import java.util.Calendar;public class calendartest {/*** @param args*/public static void main(String[] args) {SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");System.out.println("今天 :"+dateformat.format(new Date()));Calendar c=Calendar.getInstance();c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);Date d1=new Date(c.getTimeInMillis());System.out.println("星期一:"+dateformat.format(d1));c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);Date d2=new Date(c.getTimeInMillis());System.out.println("星期日:"+dateformat.format(d2));}}执行结果:今天 :2006-12-21 16:39:03 星期四星期一:2006-12-18 16:39:03 星期一星期日:2006-12-17 16:39:03 星期日。
Java语言程序设计--实验教案
《Java语言程序设计》实验教案点石科技培训部整理第一次实验:JDK开发工具的使用一.实验目的1.掌握使用JDK开发Java程序的步骤。
2.掌握JDK开发环境(环境变量)的设置。
3.掌握Java程序的基本语法,学会编写简单的Java程序。
二. 实验要求1.下载安装JDK 软件开发包,并设置环境变量。
2.掌握使用JDK编写Java程序的步骤。
3.编写一个简单的Java Application程序。
4.编写一个简单的Java Applet程序。
三.实验内容1.JDK开发环境的设置。
为了能正确方便的使用SDK,需要手工配置一些Windows 的环境变量,具体步骤如下:♦在桌面“我的电脑”图标上单击右键,选择“属性”菜单,将出现“系统属性”设置界面♦在“高级”选项卡中单击“环境变量”按钮。
将出现“环境变量”设置界面在“系统变量”框中单击“新建”按钮,在出现的“新建系统变量”对话框中输入:变量名(N): Path变量值(V): C:\Program Files\Java\jdk1.5.0\bin在“系统变量”框中单击“新建”按钮,在出现的“新建系统变量”对话框中输入:变量名(N): ClassPath变量值(V): .; C:\Program Files\Java\jdk1.5.0\lib多次点击“确定”按钮,以保存设置。
2.熟悉命令行(MS-DOS)的操作方式。
(1)怎样进入DOS界面:①“开始”菜单---“程序”---“附件”---“命令提示符”②“开始”菜单---“运行”---“输入命令cmd”(2)掌握下面DOS命令:输入D:表示进入D盘。
cd 文件夹的名字例如:cd java 将进入java目录3.按下面步骤进行实验(1)开机后,创建目录D:\java\javacode。
把这个目录作为我们的工作目录。
我们的Java源程序、编译后的字节码文件和用来运行Java Applet的html文件都放在这个目录中。
hutool 计时器的用法
hutool 计时器的用法hutool是一款Java工具包,提供了许多实用的工具类和方法,可以简化Java开发中的一些常见任务。
其中,hutool计时器就是其中之一,它可以用于记录程序运行时间,方便开发人员对代码性能进行评估和优化。
本文将介绍hutool计时器的用法。
一、计时器的创建在使用hutool计时器之前,需要先创建一个计时器对象。
可以使用Hutool类库中的`Timer`类来创建计时器对象,例如:```javaimport cn.hutool.core.util.Timer;Timer timer = Timer.getSimpleTimer(); // 创建简单计时器```或者:```javaimport cn.hutool.core.util.Timer;import cn.hutool.core.util.TimerTask;Timer timer = Timer.getMultiTimer(); // 创建多任务计时器timer.addTask(new TimerTask() {@Overridepublic void execute() {// 执行需要计时的任务}});```这里提供了两种计时器类型,`getSimpleTimer()`方法返回一个简单计时器对象,它只记录任务执行的总时间;而`getMultiTimer()`方法返回一个多任务计时器对象,它支持同时执行多个任务,并分别记录每个任务的执行时间。
二、计时器的使用创建好计时器对象后,就可以在需要计时的代码块中使用它了。
可以使用`start()`方法开始计时,使用`stop()`方法结束计时,并获取执行时间。
例如:```javatimer.start("task1"); // 开始计时 "task1"// 执行需要计时的任务timer.stop("task1"); // 结束计时 "task1"long time = timer.getElapsedTime("task1"); // 获取执行时间```其中,"task1"是计时器的名称,可以根据实际情况进行修改。
时钟计时器使用Java语言和Swing界面库开发的小程序
时钟计时器使用Java语言和Swing界面库开发的小程序时钟计时器是一款使用Java语言和Swing界面库开发的小程序,它可以以时、分、秒的形式显示当前时间,并可以进行计时功能。
本文将介绍该小程序的开发过程,并分享一些有关Java语言和Swing界面库的知识。
一、程序开发环境搭建要使用Java语言和Swing界面库进行开发,首先需要安装Java开发工具包(JDK)和集成开发环境(IDE)。
在安装完成后,创建一个新的Java项目,并导入Swing库。
二、界面设计首先,我们需要设计一个界面来展示时钟和计时功能。
可以使用Swing库提供的组件来创建窗体、标签、按钮等。
1. 窗体设计在主类中创建一个窗体对象,设置标题、尺寸和布局等属性。
并将时钟和计时功能的组件添加到窗体中。
```javaJFrame frame = new JFrame("时钟计时器");frame.setSize(400, 300);frame.setLayout(new BorderLayout());```2. 时钟设计使用标签组件来显示当前时间。
可以使用Java提供的日期和时间类(如Date和Calendar)来获取当前时间,并将其格式化后设置为标签的文本。
```javaJLabel clockLabel = new JLabel();frame.add(clockLabel, BorderLayout.CENTER);// 获取当前时间Date now = new Date();SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");String time = sdf.format(now);// 设置标签文本clockLabel.setText(time);```3. 计时功能设计为计时功能设计按钮组件,并添加监听事件。
在按钮的监听器中,通过定时器类(如Timer)来实现每秒更新计时器的功能。
stopwatch java用法
stopwatch java用法Stopwatch Java用法Stopwatch类是Java中一个计时器类,用于测量运行时间的简单工具。
它可以帮助开发人员分析代码的性能,并找出需要优化的部分。
以下是有关Stopwatch类使用的一些常见用法:1. 创建一个Stopwatch对象可以使用以下代码创建一个新的Stopwatch对象:Stopwatch stopwatch = new Stopwatch();2. 启动计时器要测量代码块的执行时间,需要在开始处调用start()方法。
例如:();3. 结束计时器要停止计时器并获取经过的时间,需要在结束处调用stop()方法。
例如:();4. 计算运行时间可以使用elapsedTime()方法来获取从计时器启动到停止的总时间,以毫秒为单位。
例如:long elapsedTime = ();("运行时间:" + elapsedTime + "毫秒");5. 重置计时器如果想要重新使用计时器,可以使用reset()方法将计时器复位为初始状态。
例如:();6. 暂停和恢复计时器可以使用suspend()方法来暂停计时器,并使用resume()方法恢复计时器。
例如:(); // 暂停计时器// 执行其他代码(); // 恢复计时器7. 测量多个代码块的执行时间可以通过重复调用start()和stop()方法来测量多个代码块的执行时间。
例如:();// 第一个代码块();();// 第二个代码块();// 获取两个代码块的执行时间long elapsedTime1 = ();();// 第三个代码块();// 获取第三个代码块的执行时间long elapsedTime2 = ();8. 计时器状态查询可以使用isRunning()方法来检查计时器当前是否正在运行。
例如:if (()) {("计时器正在运行");} else {("计时器没有运行");}以上是Stopwatch类的一些常见用法。
hutool systemtimer 用法
hutool systemtimer 用法hutool系统计时器用法hutool是一款Java工具包,提供了许多常用的功能和工具,其中包括系统计时器。
系统计时器可以帮助您轻松地记录程序运行时间,以便更好地优化代码和性能。
本文将介绍hutool系统计时器的用法。
一、使用方法1. 添加hutool依赖在使用hutool系统计时器之前,需要将hutool库添加到项目中。
您可以通过Maven或Gradle将其添加到您的构建脚本中。
2. 创建计时器对象使用hutool系统计时器,需要创建一个计时器对象。
您可以使用Hutool类库中的SystemTimer类来创建计时器对象。
例如:```javaimport cn.hutool.core.util.SystemTimer;// 创建计时器对象SystemTimer timer = new SystemTimer();```3. 开始计时使用计时器对象开始计时的方法是start()。
调用此方法将开始记录时间,直到您调用停止计时的方法。
例如:```timer.start(); // 开始计时// 这里是需要计时的代码段timer.stop(); // 停止计时```4. 获取计时结果使用计时器对象的方法elapsed()可以获取计时的结果,该方法返回自计时器启动以来经过的时间(以毫秒为单位)。
例如:```long elapsedTime = timer.elapsed(); // 获取计时结果System.out.println("执行时间:" + elapsedTime + "毫秒");```二、示例代码下面是一个简单的示例代码,演示了如何使用hutool系统计时器:```javaimport cn.hutool.core.util.SystemTimer;public class SystemTimerExample {public static void main(String[] args) {// 创建计时器对象SystemTimer timer = new SystemTimer();// 开始计时timer.start();// 这里是需要计时的代码段,例如一个简单的循环操作:for (int i = 0; i < 10000; i++) {// 模拟耗时操作Thread.sleep(10); // 暂停10毫秒}// 停止计时并获取计时结果timer.stop();long elapsedTime = timer.elapsed(); // 获取计时结果并打印出来System.out.println("执行时间:" + elapsedTime + "毫秒");}}```三、注意事项在使用hutool系统计时器时,请注意以下几点:1. 请确保您的代码段是在调用start()和stop()方法之间进行的,以正确记录时间。
创意编程小程序实例
创意编程小程序实例随着科技的发展,编程已经成为一种必备的技能。
编程不仅可以帮助我们解决问题,还可以开发各种有趣的小程序。
本文将为大家介绍几个创意的编程小程序实例,希望能够激发大家对编程的兴趣。
1. 闹钟小程序这个小程序可以帮助我们设置闹钟,并在设定的时间到达时发出提醒。
相比于普通的闹钟,这个小程序还可以根据不同的时间段播放不同的音乐,让我们在每天的早晨都能以美妙的音乐开始新的一天。
2. 健康小程序这个小程序可以帮助我们记录每天的运动情况,并根据我们的身体指标提供合适的健康建议。
它还可以设置定时提醒我们休息,并提供一些简单的健身操视频,让我们在工作学习之余也能保持身体健康。
3. 美食小程序这个小程序可以根据我们的口味和食材,为我们提供各种美食的菜谱。
它还可以根据我们的喜好推荐一些新的菜品,让我们在烹饪的过程中充满乐趣。
4. 旅行小程序这个小程序可以帮助我们规划旅行路线,并提供各种旅游景点的介绍和推荐。
它还可以根据我们的出行时间和预算,为我们提供合适的旅行方案,并帮助我们预订机票和酒店。
5. 学习小程序这个小程序可以帮助我们制定学习计划,并提供各种学习资源和学习方法。
它还可以根据我们的学习情况进行智能推荐,帮助我们更高效地学习。
以上只是几个创意编程小程序实例的简单介绍,实际上,编程的可能性是无限的。
通过编程,我们可以开发出各种有趣的小程序,满足我们的各种需求。
编程不仅可以培养我们的逻辑思维和问题解决能力,还可以帮助我们创造出有趣的东西。
通过编程,我们可以将自己的创意变成现实,让我们的生活更加便捷和有趣。
如果你对编程感兴趣,不妨尝试学习一些编程语言,如Python、Java等。
通过学习编程,你将能够掌握一种强大的工具,为自己的创意找到最好的表达方式。
创意编程小程序是一种有趣而有意义的创作方式。
通过编程,我们可以创造出各种有趣实用的小程序,满足我们的各种需求。
希望本文能够给大家带来一些灵感,激发大家对编程的兴趣和创造力。
JavaScript实现抖音罗盘时钟
JavaScript实现抖⾳罗盘时钟本⽂实例为⼤家分享了JavaScript实现抖⾳罗盘时钟的具体代码,供⼤家参考,具体内容如下其实很早以前就想发了,很多东西其实并不难,只要多动⼿动脑就⾏了,下⾯直接上代码,其他的⾃⼰下去慢慢研究吧!HTML部分代码:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>js仿抖罗盘时钟</title><link rel="stylesheet" href="css/demo.css" ></head><body><div id="clock"></div><script src="js/demo.js"></script></body></html>css部分代码:*{margin:0;padding:0}html,body{width:100%;height:100%;background-color:#000;overflow:hidden}#clock{position:relative;width:100%;height:100%;background:#000}.label{display:inline-block;color:#4d4d4d;text-align:center;padding:0 5px;font-size:19px;transition:left 1s,top 1s;transform-origin:0% 0%}JavaScript部分代码:var monthText=["⼀⽉","⼆⽉","三⽉","四⽉","五⽉","六⽉","七⽉","⼋⽉","九⽉","⼗⽉","⼗⼀⽉","⼗⼆⽉"];var dayText=["零⼀号","零⼆号","零三号","零四号","零五号","零六号","零七号","零⼋号","零九号","⼗号","⼗⼀号","⼗⼆号","⼗三号","⼗四号","⼗五号","⼗六号","⼗七号","⼗⼋号","⼗九号","⼆⼗号","⼆⼗⼀号","⼆⼗⼆号","⼆⼗三号","⼆⼗四号","⼆⼗五号","⼆⼗六号var weekText=["星期⽇","星期⼀","星期⼆","星期三","星期四","星期五","星期六"];var hourText=["零点","零⼀点","零两点","零三点","零四点","零五点","零六点","零七点","零⼋点","零九点","零⼗点","⼗⼀点","⼗⼆点","⼗三点","⼗四点","⼗五点","⼗六点","⼗七点","⼗⼋点","⼗九点","⼆⼗点","⼆⼗⼀点","⼆⼗⼆点","⼆⼗三点"];var minuteText=["零⼀分","零⼆分","零三分","零四分","零五分","零六分","零七分","零⼋分","零九分","零⼗分","⼗⼀分","⼗⼆分","⼗三分","⼗四分","⼗五分","⼗六分","⼗七分","⼗⼋分","⼗九分","⼆⼗分","⼆⼗⼀分","⼆⼗⼆分","⼆⼗三分","⼆⼗四分","⼆⼗五分","⼆var secondsText=["零⼀秒","零⼆秒","零三秒","零四秒","零五秒","零六秒","零七秒","零⼋秒","零九秒","零⼗秒","⼗⼀秒","⼗⼆秒","⼗三秒","⼗四秒","⼗五秒","⼗六秒","⼗七秒","⼗⼋秒","⼗九秒","⼆⼗秒","⼆⼗⼀秒","⼆⼗⼆秒","⼆⼗三秒","⼆⼗四秒","⼆⼗五秒"," var clock;var monthList=[];var dayList=[];var weekList=[];var hourList=[];var minuteList=[];var secondsList=[];var isCircle=false;var textSet=[[monthText,monthList],[dayText,dayList],[weekText,weekList],[hourText,hourList],[minuteText,minuteList],[secondsText,secondsList]];window.onload=function(){init();setInterval(function(){runTime();},100);changePosition();setTimeout(function(){changeCircle();},2000);}function init(){clock=document.getElementById('clock');for(var i=0;i<textSet.length;i++){for(var j=0;j<textSet[i][0].length;j++){var temp=createLabel(textSet[i][0][j]);clock.appendChild(temp);textSet[i][1].push(temp);}}}function createLabel(text){var div=document.createElement('div');div.classList.add('label');div.innerText=text;return div;}function runTime(){var now=new Date();var month=now.getMonth();var day=now.getDate();var week=now.getDay();var hour=now.getHours();var minute=now.getMinutes();var seconds=now.getSeconds();initStyle();var nowValue=[month,day-1,week,hour,minute,seconds];for(var i=0;i<nowValue.length;i++){var num=nowValue[i];textSet[i][1][num].style.color='#fff';}if(isCircle){var widthMid=document.body.clientWidth/2;var heightMid=document.body.clientHeight/2;for(var i=0;i<textSet.length;i++){for(var j=0;j<textSet[i][0].length;j++){var r=(i+1)*35+50*i;var deg=360/textSet[i][1].length*(j-nowValue[i]);var x=r*Math.sin(deg*Math.PI/180)+widthMid;var y=heightMid-r*Math.cos(deg*Math.PI/180);var temp=textSet[i][1][j];temp.style.transform='rotate('+(-90+deg)+'deg)';temp.style.left=x+'px';temp.style.top=y+'px';}}}}function initStyle(){var label=document.getElementsByClassName('label');for(var i=0;i<label.length;i++){label[i].style.color='#4d4d4d';}}function changePosition(){for(let i=0;i<textSet.length;i++){for(let j=0;j<textSet[i][1].length;j++){let tempX=textSet[i][1][j].offsetLeft+"px";let tempY=textSet[i][1][j].offsetTop+"px";setTimeout(function(){textSet[i][1][j].style.position="absolute";textSet[i][1][j].style.left=tempX;textSet[i][1][j].style.top=tempY;},50);}}}function changeCircle(){isCircle=true;clock.style.transform="rotate(90deg)";}更多JavaScript时钟特效点击查看:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
hutool 计时器的用法 -回复
hutool 计时器的用法-回复使用Hutool计时器进行时间统计是一种常见且易于实现的方法。
在本文中,我们将逐步介绍Hutool计时器的用法,并通过示例来说明如何使用它来统计代码的执行时间。
此外,我们还将讨论一些对于计时器的注意事项和最佳实践。
Hutool是一款Java工具类库,提供了丰富的工具和功能,包括字符串处理、加密解密、文件操作、网络通信等。
其中,Hutool的计时器工具类非常适合用于代码的时间统计和性能分析。
为了使用Hutool计时器,首先我们需要在项目中导入Hutool的相关依赖。
可以在Maven项目的pom.xml文件中添加如下依赖:xml<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.6</version></dependency>导入依赖后,我们就可以开始使用Hutool计时器了。
下面,让我们通过一个示例来具体介绍它的用法。
假设我们需要统计一段代码的执行时间。
首先,我们可以使用Hutool的`cn.hutool.core.date.DateUtil`工具类中的`timer()`方法创建一个计时器对象。
然后,使用计时器对象的`start()`方法开始计时。
javaimport cn.hutool.core.date.DateUtil;import cn.hutool.core.date.StopWatch;public class TimerExample {public static void main(String[] args) {创建计时器对象StopWatch stopWatch = DateUtil.timer();开始计时stopWatch.start();执行一段耗时的代码for (int i = 0; i < 100000; i++) {do something}计时器停止并打印执行时间stopWatch.stop();System.out.println("Execution time: " +stopWatch.getTotalTimeMillis() + "ms");}}在上面的示例中,我们使用一个`for`循环来模拟一段耗时的代码。
java stopwatch 用法
java stopwatch 用法Java Stopwatch是一个用来计算时间间隔的工具类。
它可以在代码中方便地计算程序执行时间,以帮助开发人员优化性能。
要使用Java Stopwatch,首先需要导入Stopwatch类。
可以使用以下代码在Java文件中进行导入:```import mon.base.Stopwatch;```一旦导入了Stopwatch类,我们可以创建一个Stopwatch对象,并使用它来计算代码块的执行时间。
以下是一个简单的示例,展示了Java Stopwatch的基本用法:```import mon.base.Stopwatch;public class Main {public static void main(String[] args) {// 创建一个Stopwatch对象Stopwatch stopwatch = Stopwatch.createStarted();// 在这里写下你要测试执行时间的代码块// 例如,这里可以是一段耗时的计算操作// 停止计时器stopwatch.stop();// 获取经过的时间,并以毫秒为单位打印出来long elapsedTime = stopwatch.elapsed(LISECONDS);System.out.println("代码块执行时间: " + elapsedTime + "毫秒");}}```在这个示例中,我们首先创建了一个Stopwatch对象并开始计时。
然后,我们在待测的代码块中执行一些操作。
最后,我们调用stop方法停止计时器,并使用elapsed方法获取在代码块中经过的时间。
在这个示例中,我们选择将时间单位设置为毫秒,并将结果打印到控制台。
使用Java Stopwatch可以帮助我们更好地了解代码中耗时的部分,并通过优化性能来提高程序的运行效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA课程项目报告项目题目:利用JAVA实现一个小时钟的程序专业班级:10软件工程利用JAVA实现一个时钟的小程序1.软件开发的需求分析在当今的信息时代,时钟已经成为人们生活中必不可少的应用工具,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。
使用Java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。
面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。
为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。
此次课程设计的题目为简单的小时钟程序设计,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。
使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。
2.具体实现2.1设计思路Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。
Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。
这将减少平常出错的50%。
而且,Java很小,整个解释器只需215K的RAM。
因此运用JAVA程序编写小时钟程序,实现简单显示时间的功能。
本次课程设计做的是Java简单小时钟,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。
程序实现了小时钟的基本功能。
2.2设计方法在设计简单小时钟时,需要编写5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。
小时钟除了需要编写的上述5个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。
2.3 运行环境CPU:Pentium 2.8GHz以上内存:256MB以上硬盘空间:80G以上操作系统:Windows XP运行环境:JDK,JCreator2.4 程序功能图及程序相关说明2.4.1 主功能框图1 程序基本框图表1 小时钟基本功能表2.4.2 程序分析程序中引入的包:package Clockimport java.awt.Clockimport java.awt.Graphicsimport java.awt.event.WindowAdapter import java.awt.event.WindowEvent import java.util.Calendarimport java.util.GregorianCalendar用户自定义类:类名:Clock作用:定义小时钟继承的父类:JFramepublic class clock extends JFrame{定义的对象:ClockPaintsizeResizableLocationTitleVisibleWindowListener,WindowClosing主要成员方法:public void center //定义小程序查看器的位置public void actionPerformed //定义处理异常机制定义子类:ClockPaint继承的父类名:JPanel继承的接口名:Runnableclass ClockPaint extends JPanel implements Runnableint h, m, s // 小时,分钟,秒主要成员方法:public ClockPaintthis.x = xthis.y = ythis.r = rs = now.get(Calendar.SECOND) * 6 // 获得秒转换成度数m = now.get(Calendar.MINUTE) * 6 // 获得分钟h = (now.get(Calendar.HOUR_OF_DAY) - 12) * 30+ now.get(Calendar.MINUTE) / 12 * 6 // 获得小时主要成员方法:public void paint(Graphics g) // 清屏super.paint(g)g.setColor(Color.BLACK)g.fillRect(0, 0, r * 3, r * 3) // 画圆g.setColor(Color.WHITE)g.drawOval(x, y, r * 2, r * 2) // 秒针g.setColor(Color.RED)int x1 = (int) ((r - 10) * Math.sin(rad * s))int y1 = (int) ((r - 10) * Math.cos(rad * s))g.drawLine(x + r, y + r, x + r + x1, y + r - y1) // 分针g.setColor(Color.BLUE)x1 = (int) ((r - r / 2.5) * Math.sin(rad * m))y1 = (int) ((r - r / 2.5) * Math.cos(rad * m))g.drawLine(x + r, y + r, x + r + x1, y + r - y1) // 时针g.setColor(Color.CYAN)x1 = (int) ((r - r / 1.5) * Math.sin(rad * h))y1 = (int) ((r - r / 1.5) * Math.cos(rad * h))g.drawLine(x + r, y + r, x + r + x1, y + r - y1) // 数字g.setColor(Color.YELLOW)int d = 29for (int i = 1; i <= 12; i++)x1 = (int) ((r - 10) * Math.sin(rad * d))y1 = (int) ((r - 10) * Math.cos(rad * d))g.drawString(i + "", x + r + x1 - 4, x + r - y1 + 5)d += 30 // 小点d = 0;for (int i = 0; i < 60; i++)x1 = (int) ((r - 2) * Math.sin(rad * d))y1 = (int) ((r - 2) * Math.cos(rad * d))g.drawString(".", x + r + x1 - 1, x + r - y1 + 1)d += 6 // 显示时间//Calendar now1 = new GregorianCalendar();//g.drawString(now1.get(Calendar.HOUR_OF_DAY) + ":"//+ now1.get(Calendar.MINUTE) + ":" +now1.get(Calendar.SECOND),//0, 10);主要成员方法:public void run捕获异常catch (Exception ex)完成显示实时数据s += 6if (s >= 360)s = 0m += 6if (m == 72 || m == 144 || m == 216 || m == 288)h += 6if (m >= 360)m = 0h += 6;if (h >= 360)h = 0;this.repaint();3.设计结果与分析将5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。
分别编译这5个Java源文件,或运行“javac *.java”命令,编译全部的源文件,然后运行连接服务器的主类,即运行Clock类。
连接完毕后在运行注册的主函数类,即运行LogIn类。
运行Clock.java,运行结果如下:图2查看实时时间4. 设计总结4.1 遇到的问题和解决方法在用JAVA编写程序时,我遇到了很多困难,对很多的接口,类,方法都不是很熟悉,只好采用查看API文档,一个一个进行对照学习,同时也上网查看了有关小时钟的相关描述,还向同学请教了,翻阅了相关的书籍。
尤其是因为有些方法需要使用JDK1.6才行,所以在学校网络机房一开始不能运行,在安装了1.6版本后运行正常了。
4.2 设计心得花费了近一个多星期的时间,查阅了许多相关的资料,终于把这个Java小时钟,程序基本实现了该课程设计的基本要求。
在设计的过程中了解到自己的知识还是比较有限,更肯定了自己在以后学习编程的道路上坚定不移的但由于只学习了一个学期的JAVA语言,自己水平有限,使得程序还有不是很完善回顾起此次java,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正掌握这门技术,也提高了自己的独立思考的能力。
在设计的过程中遇到问题,可以说得上是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。
这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。
它还让我学会了在网上查阅那些无限的资料。
让我不仅学会了书本上的知识,还让自己能够面对困难并且克服它。
5.主要代码:import java.awt.Color;import java.awt.Graphics;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.Calendar;import java.util.GregorianCalendar;import javax.swing.JFrame;import javax.swing.JPanel;/*** 时间类* **/public class Clock extends JFrame {/****/private static final long serialVersionUID = 1L;public Clock() {ClockPaint cp = new ClockPaint(20, 20, 70);this.add(cp);this.setSize(200, 200);this.setResizable(false);this.setLocation(260, 120);this.setTitle("小时钟");this.setVisible(true);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});}public static void main(String[] s) {new Clock();}}class ClockPaint extends JPanel implements Runnable {/****/private static final long serialVersionUID = 1L;int x, y, r;int h, m, s;// 小时,分钟,秒double rad = Math.PI / 180;public ClockPaint(int x, int y, int r) {this.x = x;this.y = y;this.r = r;Calendar now = new GregorianCalendar();s = now.get(Calendar.SECOND) * 6;// 获得秒转换成度数m = now.get(Calendar.MINUTE) * 6;// 获得分钟h = (now.get(Calendar.HOUR_OF_DAY) - 12) * 30+ now.get(Calendar.MINUTE) / 12 * 6;// 获得小时Thread t = new Thread(this);t.start();}public void paint(Graphics g) {// 清屏super.paint(g);g.setColor(Color.BLACK);g.fillRect(0, 0, r * 3, r * 3);// 画圆g.setColor(Color.WHITE);g.drawOval(x, y, r * 2, r * 2);// 秒针g.setColor(Color.RED);int x1 = (int) ((r - 10) * Math.sin(rad * s));int y1 = (int) ((r - 10) * Math.cos(rad * s));g.drawLine(x + r, y + r, x + r + x1, y + r - y1);// 分针g.setColor(Color.BLUE);y1 = (int) ((r - r / 2.5) * Math.cos(rad * m));g.drawLine(x + r, y + r, x + r + x1, y + r - y1);// 时针g.setColor(Color.CYAN);x1 = (int) ((r - r / 1.5) * Math.sin(rad * h));y1 = (int) ((r - r / 1.5) * Math.cos(rad * h));g.drawLine(x + r, y + r, x + r + x1, y + r - y1);// 数字g.setColor(Color.YELLOW);int d = 29;for (int i = 1; i <= 12; i++) {x1 = (int) ((r - 10) * Math.sin(rad * d));y1 = (int) ((r - 10) * Math.cos(rad * d));g.drawString(i + "", x + r + x1 - 4, x + r - y1 +5);d += 30;}// 小点d = 0;for (int i = 0; i < 60; i++) {x1 = (int) ((r - 2) * Math.sin(rad * d));g.drawString(".", x + r + x1 - 1, x + r - y1 + 1);d += 6;}// 显示时间//Calendar now1 = new GregorianCalendar();//g.drawString(now1.get(Calendar.HOUR_OF_DAY) + ":"//+ now1.get(Calendar.MINUTE) + ":" + now1.get(Calendar.SECOND),//0, 10);}public void run() {while (true) {try {Thread.sleep(1000);} catch (Exception ex) {}s += 6;if (s >= 360) {s = 0;m += 6;if (m == 72 || m == 144 || m == 216 || m == 288) {h += 6;}if (m >= 360) {m = 0;h += 6;}if (h >= 360) {h = 0;}}this.repaint();}}}。