完整版)java万年历课程_第1页
完整版)java万年历课程_第2页
完整版)java万年历课程_第3页
完整版)java万年历课程_第4页
完整版)java万年历课程_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JAVA课程设计报告模拟时钟系别:计算机系班级:计本1119班姓名:高鹏飞学号:1162041928指导教师:白茹意一、课程设计任务及要求(1)设计任务:编写一个Java万年历程序,实现日期和星期的查询。(2)设计要求:1、主界面采用边界布局,北面是一个设置年月的控制面板,中间是日 历绘制区;2、单击“月份”的下拉式菜单,可以显示当前月的上一月/下一月的日 历;3、单击“年份”的下拉式菜单,可以显示上一年 /下一年的当前日历;二、需求分析对于万年历系统,其主要功能是:查看当日日期(年、月、日)、查看 当时时间、查看其他年月的月历。主要使用流程是:查看万年历系统,查 看其他月份或年份日历,选中其

2、他日期查看,查看当日日期。主要功能的 用例描述如下:(1)查看万年历1、进入万年历系统;2、系统获取当日日期并设置日历为当月,红框选中当日日期;(2)查询当月其他年份改变年份的方法是选择年份。下拉菜单选择年份:1、点击选择年份的下拉菜单,选择年份;2、系统获取已选择的年份;3、系统设置为已选年份当月的月历并显示在界面显示。(3)查询当年的其他月份改变月份的方法是选择月份。下拉菜单选择月份:1、点击选择月份的下拉菜单,选择年份;2、系统获取已选择的月份;3、系统设置已选月份为当年的月历并在界面显示。(4) 选择其他日期查看1、点击其他日期;2、系统对所有日期的label进行监听,判断点击的那个l

3、abel;3、返回被点击的label的数组下标;4、对该下标的label设置蓝色边框,表示选中。三、设计思路本课设界面由边界布局构成,主要有北方部件和中央部件两部分。(1)北方部件上有查询输入部分和时间显示部分:1、两个下拉列表用于选择的年份和月份,如改变年份后系统用getShowYear()获得组合框中的中文年份,getCombYear()转换成英文格 式,得到用户选择的年份,同时用getMo nthDays ()和get Ini tWeek ()得到界面的设定,最终,用setDays ()设置出用户所要求的月历,改变月份 同理;2、四个butt on按钮用于实现年一、年+、月一、月+,如摁

4、了“年+” 后,系统用getShowYea()和getCombYear()获得组合框中的年份,在 其年份上加1,将改变的年份显示在组合框里,计算出该年月日历的安排, 并用setDays ()设置出用户所要求得月历,其他按钮同理;3、一个button按钮用于实现对今日日期的查找,当用户摁了“今日” 后,系统用 getNowYear()和getNowMonth ()得到当日年月,并调用 setNowDay()将系统组合框内年月设为当日年月,显示当月月历,同时系 统用 getNowDay ()获得当日日期,用 labelDayi.setBorder(border1)语句将 当日的日期用蓝色的边框框住

5、表示选定;4、创建一个标签用于显示时间,监听系统时间并显示。(2)中央部件上添加系统的结果显示部分:1、该部分最初显示为当日年月的月历,改变年月后,获得需要显示的月份天数m和当月1号是从labelDay n开始后按顺序从添加到 labelDaym+n,遇到周末用setForeground(Color.red设定字体显示为红色;2、 对labelDay标签进行监听,如果鼠标点击某个label,判断该标签的 的序号,用setBorder ()为该label设置蓝色边框并用setBordr (null)将上 一个边框清除。四、详细设计(1)类设计本程序创建了一个 Mai nF rame类,该类包括了

6、改变年月对月历界面显示的改变和时间的显示,主要包括函数如表1所示:Mai nF ramepublic Mai nFrame(Stri ng title)界面设计public void ClockAction(ActionEvent ae)判断 button 摁键public in t getNowDay()获得现在的日期public In teger getShowYear()获取组合框中显示的中文格式年份public in t getComboYear()获取组合框中的年份public in t getI ni tWeek(Stri ng ini tWeek)返回当月中的1号是从星期几开始

7、public int getM on thDays(i nt year, i nt mon th)返回所选年月的天数public void setSysDate(i nt year,i nt mon th)设置系统日期public void setCha ngeDate()改变显示日期public void setDays(i nt mon thDays,i nt in itWeek,i nt day)设置月历表1表1(2 )界面设计界面如图1所示该界面由上北面的输入选择部分和中央的结果显示部 分组成。输入部分创建两个下拉列表选择年月及5个功能按键用于实现日历的基本操作;结果显示部分根据该月1

8、号所属星期和该月的天数设置出该月月历界面。for(i nt i=0;i7;i+)labelWeeki = new JLabel();labelWeeki.setHorizo ntalAlig nmen t(0);if(i=0|i=6)labelWeeki.setForeground(Color.red); /设置周末为红色 labelWeeki.setFo nt(new Fo nt(新宋体,F on t.BOLD,18);elselabelWeeki.setForegro un d(Color.BLACK);labelWeeki.setFo nt(n ew Fon t(新宋体,Fo nt.PL

9、AIN,18);labelWeeki.setText(stri ngWeekC ni); pan el2.add(labelWeeki);加上日期的 labelfor(int i= 0;i42;i+)labelDayi = new JLabel();labelDayi.setHorizo ntalAlig nmen t(0); / 设置文本的水平对齐方式 labelDayi.setText();pan el2.add(labelDayi);labelDayi.addMouseListener(listener); 对 label 进行监听设置月历public void setDays(i nt

10、 mon thDays,i nt in itWeek,i nt day)setDateNull();for(int i=initWeek;iinitWeek+monthDays+1;i+)/initWeek 初始星期labelDayi.setFo nt(n ew Fon t(黑体,Fo nt.BOLD,18);/设置日期的字体if(i-i ni tWeek+1)=day)/ 如果日期为今天for(i nt j=0;j42;j+)labelDayj.setBorder( null); labelDayi.setBorder(border1); 选中当日日期 if(i%7=0)|(i%7=6)la

11、belDayi.setForegro un d(Color.red);else labelDayi.setForegrou nd(Color.BLACK); labelDayi.setText(Stri ng.valueOf(i-i ni tWeek+1);for(int i=initWeek+monthDays;i42;i+) labelDayi.setText();(3 )功能实现该系统主要实现的功能如图2所示万年历系统k,查询指定年份日历查询指定月份日历查询相邻年份日历查询相邻月份日历查看今日选择其他日期显示时间1、当用户需要查询指定年月的日历时,用户将选择框内年月改变,系统获取信息并设

12、置月历,具体流程如图 3所示图32、用户用鼠标点击选择一个日期后,系统可用蓝色方框框住该日期,表示系统已选择该日,具体流程如图 5所示用户点击某一日期系统判断用户已点 击标签的下标清除上一个方 框对被点击的标签设 一个蓝色方框图4五、运行调试与分析讨论(1 )运行结果和分析图5为系统初始界面,系统自动设置为当日年月的月历,并且用红色 框住当日日期。图5(2 )改进想法该万年历程序只能显示阳历,可在其基础上加上阴历的显示,当鼠标 点击了某一日的日期时,该日期被框住并且显示出其阴历日期;每年一些固定的节日如“五一”、“十一”可在日历上用红色数字显示 出来;月历上其他未填日期的空白label可用加上

13、上个月和下个月的部分日 期,用灰色表示方便区。六、设计体会与小结Java语言是解释执行的高级编程语言,是面向对象的程序设计语言,功 能强大,它是解释执行的,能跨平台使用。具有较高的性能和高度的安全性, Java程序的三级代码安全检查机制可以有效的防止非法代码的入侵,阻止 对内存的越权访问,能够避免病毒的侵害,成为In ternet上最安全的技术之一。并且支技多线程,可使用户程序并行执行,即有内存垃圾自动收集机 制。Java语言是一种“直译”式语言,即用 Java编写的程序首先被编译 成字节码,再通过JVM解释成机器码,字节码是Java专有的一种中间码, 必须通过JVM来解释才能运行。经过了一个

14、学期对Java程序设计的学 习,我们学习了理论知识,了解了 Java语言程序设计的思想,这些知识都 为我们的下一步学习打下了坚实的基础经过这次课程设计使我对 JAVA图形用户界面的有关知识有了更深入 了解,如几种布局管理器的使用方法,事件的处理机制,SWING的基本体系结构,SWING组件的使用方法,多媒体的实现手段等知识。完成了简单 的万年历功能,本次课程设计的主要内容就是设计一个可以查询日期的程 序,通过选择下拉列表中的年份以及月份来实现日期的查询,及按键改变 年月通过它可以查询到日期的一些具体信息, 可以查询所选日期是星期几, 还对星期六与星期日有特殊颜色的标记,方便查看。此外,还可以实现显 示数字时间的功能,简单实用。通过课程设计,能够达到全面、深入理解 和掌握所学内容,能够进行简单的分析和判断。这次课程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论