6时钟日历设计JAVA实验报告

合集下载

java日历实验报告

java日历实验报告

java日历实验报告Java日历实验报告引言在计算机科学领域中,日历是一种常见的应用程序。

它不仅可以帮助我们追踪时间和日期,还可以提供一些方便的功能,如提醒、日程安排等。

在本次实验中,我们将使用Java编程语言来实现一个简单的日历应用程序,并对其进行测试和评估。

实验目的本次实验的主要目的是通过实现一个日历应用程序来加深对Java编程语言的理解和掌握。

通过这个实验,我们将学习如何使用Java的日期和时间类来处理日期和时间相关的操作,并且能够将这些操作应用到实际的应用程序中。

实验步骤1. 设计日历应用程序的功能和界面:在开始编写代码之前,我们首先需要确定日历应用程序的功能和界面设计。

我们可以考虑添加以下功能:显示当前日期、切换月份、添加日程安排等。

在界面设计方面,我们可以使用图形用户界面(GUI)来提供更好的用户体验。

2. 实现日历应用程序的核心功能:在设计完成后,我们可以开始编写代码来实现日历应用程序的核心功能。

首先,我们需要使用Java的日期和时间类来获取当前日期,并将其显示在界面上。

然后,我们可以添加一些按钮或菜单来实现切换月份的功能。

最后,我们可以使用文本框或文本区域来让用户输入日程安排,并将其保存到文件或数据库中。

3. 进行测试和评估:在完成编码后,我们需要对日历应用程序进行测试和评估。

我们可以输入一些测试用例,如切换月份、添加日程安排等,来验证程序的正确性和稳定性。

如果发现了问题或错误,我们需要进行调试和修复,直到程序能够正常运行。

实验结果经过测试和评估,我们的日历应用程序能够正常运行,并且具备基本的功能。

用户可以通过界面来查看当前日期,并且可以方便地切换月份。

用户还可以添加日程安排,并且程序能够将其保存和显示。

讨论与总结通过本次实验,我们深入学习了Java的日期和时间类,并将其应用到实际的日历应用程序中。

我们了解了如何获取当前日期、切换月份以及添加日程安排等操作。

同时,我们也发现了一些问题和改进的空间,如界面设计可以更加美观,功能可以更加完善等。

日历时钟设计总结报告

日历时钟设计总结报告

日历时钟设计总结报告1. 引言日历时钟是一种常见的时间管理工具,它不仅能显示当前的时间,还可以提供日期、星期、月份等信息,帮助人们更好地安排和管理时间。

本文将总结我们设计师团队在开发日历时钟过程中的经验和教训,并对设计方案进行评估和改进。

2. 设计背景随着人们生活节奏的加快和压力的增加,时间管理变得越来越重要。

一款功能全面、操作简便的日历时钟对于人们合理安排时间、提高生产效率至关重要。

基于此背景,我们团队决定设计一款简洁实用的日历时钟产品。

3. 设计方案3.1 功能设计我们确定了以下主要功能:- 显示当前时间,包括小时、分钟和秒钟;- 显示当前日期、星期和月份;- 闹钟功能,用户可以设置闹钟时间并收到提醒;- 定时器功能,用户可以设置定时器时间并收到倒计时提醒。

3.2 用户界面设计为了简化操作,我们设计了以下界面布局:- 顶部为时间显示区域;- 左侧为日期和星期显示区域;- 右侧为月份显示区域;- 下方为功能按钮区域。

4. 开发过程我们采用敏捷开发方法,分为需求分析、设计、编码和测试四个阶段进行。

在需求分析阶段,我们与用户进行了需求沟通,确保功能需求和界面设计符合用户期望。

在设计阶段,我们团队进行了头脑风暴,获得了多个设计方案,并经过讨论和评估选择了最终方案。

在编码阶段,我们团队协同工作,分工合作,确保代码的质量和可维护性。

在测试阶段,我们进行了单元测试、功能测试和系统测试,确保软件的正确性和稳定性。

5. 评估与改进在开发过程中,我们遇到了一些挑战和问题,需要进行评估和改进:- 介面设计规划是否足够清晰,用户易于接受和操作;- 功能是否足够全面,是否满足用户的实际需求;- 代码的可维护性和扩展性是否良好,方便后续版本的改进。

根据评估的结果,我们决定改进方案:- 进一步优化界面设计,提高用户的使用体验;- 增加一些实用的功能,如倒计时、备忘录等,以满足不同用户的需求;- 优化代码结构,提高代码的可维护性和扩展性。

java课程设计报告_简单日历程序

java课程设计报告_简单日历程序

. . ..课程设计题目2. 题目说明通过编写一个基于JAVA的应用系统综合实例,自定义一个日历组件显示日期和时间并进行适当的功能扩充,实践Java语言编程技术。

3. 系统设计2.1 设计目标一个完整的程序应具有以下功能:1)显示当月日历、当前日期、当前时间;2)可查寻任意月以及任意年的日历;3)使用图形化界面能够弹出对话框;5)正常退出程序。

2.2 设计思想设计一个类用来构成日历系统的主窗口,然后编写一个框架类显示时间和提示信息。

在设计中应用了多种容器和控件。

2.3 系统模块划分图1:简易日历的程序结构图2.3.1初始化:public void init()完成界面初始化,形成一个以挂历形式显示当前日期的窗口。

2.3.2日历描述:(1)public void updateView()改变日期后完成更新界面;(2)抽象类java.util.Calendar获取系统日期并传递日期数据而且在人工改变日期后得出当天是周几;(3)public static void main(String[] args)主函数完成系统各算法的调用并对主窗口的一些属性进行设置;2.3.3滚动时间:将时间以文本的形式在文本框中滚动播出,并能改变滚动的速度。

4. 使用类及接口仅仅简单说明类的功能,详细资料请参看《JavaTM2PlatformStandard Ed. 6》的电子文档,常规的接口与包则省略不屑。

//以下是日历程序块中使用的类package fancy;import java.awt.*;import java.awt.event.*;import java.util.*; //主要用此包中的日期和时间类import javax.swing.*;import javax.swing.event.*;import javax.swing.table.*;//以下是对滚动时间程序块所使用的类和接口,用到定时器类Timerimport java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.awt.event.FocusListener;、//用于监听鼠标单击(焦点改变)事件import java.awt.event.FocusEvent;//用于响应鼠标单击(焦点改变)事件、import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing.JSpinner;//让用户从一个有序序列中选择一个数字或者一个对象值的单行输入字段。

Java日历记事本课程设计报告毕业用资料

Java日历记事本课程设计报告毕业用资料

Java日历记事本课程设计报告在设计日历记事本时,需要编写6个JAVA源文件:CalendarWindow.java、CalendarPad.java、NotePad.java、CalendarImage.java、Clock.java和CalendarMesssage.java效果图如下.CalendarWindow类import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;import java.io.*;public class CalendarWindow extends JFrame implements ActionListener,MouseListener,FocusListener{int year,month,day;CalendarMessage calendarMessage;CalendarPad calendarPad;NotePad notePad;JTextField showYear,showMonth;JTextField[]showDay;CalendarImage calendarImage;String picturename;Clock clock;JButton nextYear,previousYear,nextMonth,previousMonth;JButtonsaveDailyRecord,deleteDailyRecord,readDailyRecord;JButton getPicture;File dir;Color backColor=Color.white;public CalendarWindow(){dir=new File("./dailyRecord");dir.mkdir();showDay=new JTextField[42];for(int i=0;i<showDay.length;i++){showDay[i]=new JTextField();showDay[i].setBackground(backColor);showDay[i].setLayout(new GridLayout(3,3));showDay[i].addMouseListener(this);showDay[i].addFocusListener(this);}calendarMessage=new CalendarMessage();calendarPad=new CalendarPad();notePad=new NotePad();Calendar calendar=Calendar.getInstance();calendar.setTime(new Date());year=calendar.get(Calendar.YEAR);month=calendar.get(Calendar.MONTH)+1;day=calendar.get(Calendar.DAY_OF_MONTH);calendarMessage.setYear(year);calendarMessage.setMonth(month);calendarMessage.setDay(day);calendarPad.setCalendarMessage(calendarMessage);calendarPad.setShowDayTextField(showDay);notePad.setShowMessage(year,month,day);calendarPad.showMonthCalendar();doMark();calendarImage=new CalendarImage();calendarImage.setImageFile(new File("flower.jpg"));clock=new Clock();JSplitPane splitV1=new JSplitPane(JSplitPane.VERTICAL_SPLIT,calendarPad,calendarIm age);JSplitPane splitV2=new JSplitPane(JSplitPane.VERTICAL_SPLIT,notePad,clock);JSplitPane splitH=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitV1,splitV2);add(splitH,BorderLayout.CENTER);showYear=new JTextField(""+year,6);showYear.setFont(newFont("TimesRoman",Font.BOLD,12));showYear.setHorizontalAlignment(JTextField.CENTER);showMonth=new JTextField(""+month,4);。

java日历设计报告参考模板

java日历设计报告参考模板

华东交通大学理工学院课程设计报告书所属课程名称 java语言程序设计课程设计题目利用java完成日历的制作分院电信分院专业班级电商二班学号 20120410210129学生姓名方槐指导教师葛菁20 13 年12 月29 日课程设计(论文)评阅意见评阅人职称20 年月日目录第1章课程设计内容及要求. (4)第2章编写程序及结果 (5)第3章课程设计心得 (11)第4章参考文献 (12)第一章课程设计内容及要求内容一设计内容利用java程序编写我们生活中的经常使用的日历,当你想看哪个月的具体情况时,只需运行我们的程序就可以达到目的。

二要求内容利用我们所学的编写一个简单的日历表三设计原理运用课堂所学知识和上机课的练习的基础上在Java运行环境JCreaor中编写程序,还有在课外自己学的扫描仪。

四设计目的1.运用我们自学的扫描仪实现我们的操作。

2.该日历可以实现与生活中的日历一样。

3.先随机输入几年,随机输入几月,就能显示当月的天数,每一天的星期第二章编写程序及结果一程序编程Import java.util.Scanner;public class Qsr_2013{public static void main(String[] args){Scanner in=new Scanner(System.in);System.out.println("请输入月份:");int month=in.nextInt();int sum=0;for(int i=1;i<month;i++){if(i==2){if(year%4==0&&year%100!=0||year%400==0){sum+=29;}else{sum+=28;}}else{if(i==4||i==6||i==9||i==11){sum+=30;}else{sum+=31;}}}sum+=1;int wekday=sum%7;System.out.println("日\t一\t二\t三\t四\t五\t六"); for(int i=1;i<=wekday;i++){System.out.print("\t");}for(int i=1;i<=30;i++){if(sum%7==6){System.out.print(i+"\n");}else{System.out.print(i+"\t");}sum++;}}}二运行结果来两张程序截图先确定下没有错误的2013年输入月份然后运行 1月哦4月来张第三章心得通过这次课程设计,使我灵活应用所学java知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。

java实验报告 日历设计

java实验报告     日历设计

班级:**** 姓名:*** 学号:****10010127Java实验报告实验7 日历一、实验目的1. 掌握SWT 的容器概念及使用方法。

2. 掌握SWT 中的工具栏与菜单的使用方法。

3. 掌握SWT 中的表格组件的使用。

4. 掌握SWT 各种对话框的使用方法。

二、实验内容:简单日历系统的设计与实现。

三、实验步骤:1. 简单日历系统的设计与实现1) 创建Java 类。

在“包资源管理器”中用鼠标右击项目“Practical”,选择快捷菜单中“新建”→“Visual Class”;在打开的“New Java Visual Class ”窗口中,“源文件夹”的默认值是项目的文件夹,不需要更改,“包”栏中输入程序包的名称“ch7”。

“名称”栏中输入类名“Su”,在“Style ”列表框中选择“SWT”→“Shell”,选中“public static void main(String[] args) ”复选框,使之自动创建一个main 方法,单击“完成”按钮,一个含有GUI 程序界面以及代码的编辑器窗口被打开。

2) 添加组件。

用鼠标右键单击GUI 程序界面的任何位置,在快捷菜单中选择“Set Layout”→“FillLayout”。

在“Palette”面板中用鼠标单击“SWT Containers ”中的“ViewForm”,在程序界面sShell 中添加ViewForm 容器viewForm 。

从Pallete 工具栏中依次单击组件:T oolBar 和T able ,在ViewForm 容器添加一个工具栏toolBar 和一个表格table ,并在工具栏toolBar 中添加4 个工具栏按钮toolItem~toolItem3;在表格中添加7 个表列tableColumn~tableColumn6 。

更改4 个工具栏按钮的T ext 属性分别为“上一年”、“上个月”、“下个月”和“下一年”;更改7 个表列的T ext 属性分别为“日”~“六”,如图下所示。

java日历课程设计报告

java日历课程设计报告

软件学院课程设计报告书课程名称面向对象课程设计设计题目专业班级学号姓名指导教师年 1 月int selYear1=Integer.parseInt(calLis.Year.getSelectedItem());int selYear = selYear1- 1900;Date d1 = new Date(selYear,selMonth,1);int day = d1.getDay();calLis.setVal(d1,day,selMonth,selYear);}}class myAction implements ActionListener{CalenderCreator calAc;int newyear;public myAction(CalenderCreator ca{calAc=ca;}//为“关闭”按钮添加监听事件,当“关闭”按钮被点击时就执行这里的部分public void actionPerformed(ActionEvent e){String s=calAc.textfield.getText();// newyear=Integer.parseInt(s);System.out.println("Year upto::::::::"+s);calAc.setYear(s);TextField tf = (TextField)e.getSource();tf.removeActionListener(this);}}4.3用图片辅助认识程序的具体操作和执行图4-1:月份和年份的效果图图4-2:星期的效果图图4-3:日期的效果图图4-4:日历整体效果图4.4附注完整程序设计import java.awt.*;import java.awt.event.*;import java.util.*;public class CalenderCreator extends Frame{Button days[]=new Button[49];Choice Month=new Choice();Choice Year=new Choice();Label lmonth=new Label("MONTH");Label lyear=new Label("Year");Label ltext=new Label("YEAR UPTO");Panel p1,p2;GregorianCalendar gc=new GregorianCalendar();int totdays;TextField textfield=new TextField(2);public CalenderCreator(){setTitle("日历");setSize(400,400);。

时钟与日历课程设计报告

时钟与日历课程设计报告

报告编号:第六组综合课程设计报告时钟与日历系统的设计与实现学生姓名:指导教师:所在系:电子信息系所学专业:计算机科学与技术年级:2009年12月目录第1章前言 (1)1.1 系统前景 (1)1.2 系统主要功能 (1)第2章需求分析 (2)第3章概要设计 (3)3.1 主界面模块 (3)3.2 时钟模块 (3)3.3 日历模块 (5)第4章详细设计 (6)4.1 主界面 (6)4.2日历部分 (7)4.3时钟部分 (10)第5章系统测试 (12)第6章小结 (16)参考文献 (16)附录 (17)摘要针对用户对日历与时间的系统要求,本应用软件运用java语言编写,在swing组件中通过程序的编写,实现了基本的时钟和日历功能,本应用软件中的时钟时间以所在电脑的系统时间为准,用户可在修改时间的界面中修改系统时间来调整时钟的指向。

日历中可以通过单击日历中的数字实现时间的修改。

时钟部分可以在动态显示数字钟和图形钟,并且两个互相不影响。

修改时钟的时间的时候修改的是本操作系统的时间。

本系统中多次运用到了线程机制。

可视化主界面里面添加了两个panel,分别放时间和日期的板块。

关键字:swing组件时钟日历多线程可视化界面第1章前言1.1系统前景随着社会的发展,时间在人的生活中扮演着越来越重要的角色,本系统用JAVA实现的日历和时间的显示更新。

现在大部分JAVA写的程序时时钟和日历分开的并且无法改变时间,本系统把时间里面的日历和时钟整合在了一块,而且实现了对时间的修改。

Java是一个面向对象的程序设计语言,可以让我们更好的掌握面向对象思想解决实际问题的能力。

Java拥有庞大的API,其中ng包下的80%的类都是我们必须熟练掌握的,还有其他如:java.awt包,java.math包等等,AWT 的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印,还有Swing组件的基本内容等。

运用这些强大的API我们可以开发出很多的应用程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

佛山科学技术学院《可视化编程技术》课程设计报告时钟日历设计学生姓名:学号:年级专业:指导老师:学院:广东★佛山提交日期:2014年6月目录1.前言 (2)2.概要设计 (3)2.1开发环境 (3)2.2时钟日历功能 (3)2.3界面设计 (3)2.4类的框架结构图 (4)3.详细设计 (5)3.1使用的JAVA类的说明 (5)3.2类的主要方法 (6)3.2.1设置3个按钮 (6)3.2.2日历、时钟、界面的绘制 (7)3.2.3导入素材文件 (10)3.2.4设计总体认识 (11)4.运行结果 (11)5.测试分析 (11)5.1程序运行情况 (11)5.2程序异常处理 (12)6.源程序 (13)参考文献 (23)设计总结 (24)摘要:该程序是一个图形界面的简单的java时钟日历,具有良好的界面。

该程序可以自动获取系统日期和时间。

还可以翻看万年历,在点选日期的时候会有音效。

程序中还有个会移动的图形条,在右侧则有一个时钟图形,会跟着实时时间动。

下方三个按钮可以播放一个声音,PLAY则播放一次,LOOP则循环播放,STOP则停止播放声音。

关键字:java、日历类、时钟类、声音类、方法、事件1前言随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。

文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。

Java是由Sun公司开发的新一代纯面向对象的网络编程语言。

其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。

正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。

Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。

Java基本版本叫Java2标准版(Java2Standard Edition,J2SE),它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。

Java 2移动版(The Java2Mobile Edition,J2ME)包含创建无线Java应用程序的API。

还有Java2企业版(The Java2Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。

Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。

作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。

Java 语言去掉了C++语言的一些容易引起错误的特性。

Java语言的特点有:面向对象、跨平台、安全性、多线程和图形功能强。

2概要设计2.1开发环境开发平台:Microsoft Windows7旗舰版Service Pack1开发工具:Eclipse+JDK1.6.0_022.2时钟日历功能功能1:显示实时日期功能2:显示实时时间功能3:翻看万年历功能4:单次播放声音功能5:循环播放声音功能6:停止播放声音2.3界面设计图2.3时钟日历面板2.4类的框架结构//Film是描述滚动图片的类.class Film extends Canvas implements Runnable{ public void run(){}public void paint(Graphics g){}public void update(Graphics g){}}//AudioPlayer是描述底部音乐播放条的类.class AudioPlayer extends Panel{public boolean action(Event e,Object p){}}//Calendar是描述日历和时钟的类.class Calendar extends Panel implements Runnable{ public void run(){}public void paint(Graphics g){}public void update(Graphics g){}public boolean action(Event evt,Object arg){}public boolean mouseDown(Event evt,int x,int y){} public boolean lostFocus(Event evt,Object what){} public boolean keyDown(Event evt,int key){} }//主类public class MyApplet extends Applet{public void init(){}public void start(){}public void stop(){}public void destroy(){}}3详细设计3.1使用的Java类的说明类名:Film作用:描述滚动图片的继承的父类:Canvas类实现的接口:没有class Film extends Canvas implements Runnable{public void run(){}public void paint(Graphics g){}public void update(Graphics g){}}类名:AudioPlayer作用:描述底部音乐播放条的类.继承的父类:Panel类实现的接口:没有class AudioPlayer extends Panel{public boolean action(Event e,Object p){}}类名:Calendar作用:描述日历和时钟的类.继承的父类:Panel类实现的接口:Filmclass Calendar extends Panel implements Runnable{public void run(){}public void paint(Graphics g){}public void update(Graphics g){}public boolean action(Event evt,Object arg){} public boolean mouseDown(Event evt,int x,int y){}public boolean lostFocus(Event evt,Object what){}public boolean keyDown(Event evt,int key){} }类名:MyApplet作用:主类.继承的父类:Applet类实现的接口:Calendar、AudioPlayerpublic class MyApplet extends Applet{public void init(){}public void start(){}public void stop(){}public void destroy(){}}3.2类的主要方法3.2.1设置3个按钮:public boolean action(Event e,Object p){if(e.target==play){au.play();}else if(e.target==loop){au.loop();}else if(e.target==stop){au.stop();}return super.action(e,p);}3.2.2日历、时钟、界面的绘制:public void update(Graphics g){int i,j;Dimension d=size();Image offImage=createImage(d.width,d.height);Graphics offG=offImage.getGraphics();//set the background colorsetBackground(new Color(242,160,255));offG.setColor(getBackground());offG.fillRect(0,0,500,350);//draw calendar shadowoffG.setColor(new Color(80,150,80));offG.fillRect(25,100,340,230);//draw calendar baseoffG.setColor(new Color(100,230,195));offG.fillRect(15,90,340,230);offG.setFont(new Font("Helvetica",Font.BOLD,20));for(i=0;i<=6;i++){offG.setColor(Color.darkGray);offG.drawString(weekName[i],26+i*48,110);offG.setColor(Color.white);offG.drawString(weekName[i],24+i*48,108);}//draw author informationoffG.setColor(Color.gray);offG.drawString("12教育技术2班刘思华2012914205",10,350);//draw vertical barsfor(i=350;i>0;i-=10){offG.setColor(new Color(170+85*i/350,255,170+85*i/350));offG.fillRect(380,i,40,9);}//draw yearoffG.setColor(new Color(200,255,200));offG.setFont(new Font("Courier",Font.ITALIC,66));String yearString=""+(1900+today.getYear());for(j=0;j<=6;j+=2)for(i=0;i<=3;i++)offG.drawString(yearString.substring(i,i+1),415+j,168+49*i);//draw horizontal barsoffG.setColor(Color.black);offG.drawLine(6,60,250,60);offG.setColor(new Color(100,200,100));offG.drawLine(5,65,495,65);offG.drawLine(5,66,495,66);//draw circlesoffG.setColor(Color.black);offG.drawOval(560,5,120,120);offG.setColor(Color.black);offG.drawOval(570,15,100,100);//draw MonthoffG.setFont(newFont("Monospaced",Font.BOLD+Font.ITALIC,25));offG.setColor(Color.orange);offG.drawString(monthName[today.getMonth()],280,57);//draw dateFont myFont=new Font("DialogInput",Font.BOLD,50);FontMetrics fontSize=getFontMetrics(myFont);offG.setFont(myFont);String temp=""+today.getDate();Color dateColor=new Color(weekColor[today.getDay()]);int x=380-fontSize.stringWidth(temp)/2;int y=59;offG.setColor(dateColor.brighter());offG.drawString(temp,x-1,y-1);offG.setColor(dateColor.darker());offG.drawString(temp,x+1,y+1);offG.setColor(dateColor);offG.drawString(temp,x,y);//draw clockoffG.setColor(Color.black);offG.drawOval(560,60,10,10);//9点offG.drawOval(670,60,10,10);//3点offG.drawOval(615,5,10,10);//12点offG.drawOval(615,115,10,10);//6点offG.drawOval(571,36,5,5);//10点offG.drawOval(591,16,5,5);//11点offG.drawOval(644,16,5,5);//1点offG.drawOval(663,36,5,5);//2点offG.drawOval(663,89,5,5);//4点offG.drawOval(644,109,5,5);//5点offG.drawOval(591,109,5,5);//7点offG.drawOval(571,89,5,5);//8点Date now=new Date();double hour=now.getHours()+now.getMinutes()/60.;double minute=now.getMinutes()+now.getSeconds()/60.;double second=now.getSeconds();offG.setColor(Color.black);offG.drawLine(620,65,(int)(620+30*Math.sin(hour*Math.PI/6)),(int)(65-30 *Math.cos(hour*Math.PI/6)));offG.drawLine(620,65,(int)(620+45*Math.sin(minute*Math.PI/30)),(int)(65 -45*Math.cos(minute*Math.PI/30)));offG.setColor(Color.black);offG.drawLine(620,65,(int)(620+48*Math.sin(second*Math.PI/30)),(int)(65 -48*Math.cos(second*Math.PI/30)));//draw calendar datesboolean raised;offG.setFont(new Font("Serif",Font.PLAIN,15));Date newDay=new Date(today.getYear(),today.getMonth(),1);newDay.setDate(1-newDay.getDay());//找出日历左上角的日期for(j=0;j<=5;j++){for(i=0;i<=6;i++){offG.setColor(new Color(220,255,165));if(today.getDate()!=newDay.getDate()||today.getMonth()!=newDay.getMonth())raised=true;//其他日期,按钮上浮elseraised=false;//当前日期,按钮下沉offG.fill3DRect(17+i*48,114+j*34,48,34,raised);if(today.getMonth()==newDay.getMonth())offG.setColor(Color.black);//本月日期,黑色elseoffG.setColor(Color.black);//他月日期,浅色offG.drawString(""+newDay.getDate(),20+i*48,129+j*34);newDay.setDate(newDay.getDate()+1);}}g.drawImage(offImage,0,0,this);}3.2.3导入素材文件:public void init(){String auname=getParameter("auname");if(auname==null){auname="ding.au";}AudioClip au=getAudioClip(getCodeBase(),auname);audioPlayer=new AudioPlayer(au);Image thumb=getImage(getCodeBase(),"thumb.gif");au=getAudioClip(getCodeBase(),"chirp.au");calendar=new Calendar(thumb,au);setLayout(new BorderLayout());add("Center",calendar);add("South",audioPlayer);}3.2.4设计的总体认识●JAV A设计的摘要●JAV A设计的目录结构●JAV A设计的概要和详细设计●JAV A设计的版权意识●JAV A设计需要编译的环境●JAV A设计的实用性4运行结果图4程序运行结果5测试分析5.1程序运行情况:程序正常的响应按钮事件,输入到输入框的数据数值可能不是数字,导致程序异常,因此使用了try{}catch(NumberFormatException e){}setDateText();return true;将数据变回原来的数据值,防止程序异常。

相关文档
最新文档