毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

JAVA课程设计报告模拟时钟

更新时间:2015-2-4:  来源:毕业论文
JAVA课程设计报告模拟时钟
一、课程设计任务及要求
(1)设计任务: 编写一个 Java 万年历程序,实现日期和星期的查询。 (2)设计要求: 1、主界面采用边界布局,北面是一个设置年月的控制面板,中间是日 历绘制区; 2、单击“月份”的下拉式菜单,可以显示当前月的上一月/下一月的日 历; 3、单击“年份”的下拉式菜单,可以显示上一年/下一年的当前日历;
二、需求分析
对于万年历系统,其主要功能是:查看当日日期(年、月、日) 、查看 当时时间、查看其他年月的月历。主要使用流程是:查看万年历系统,查 看其他月份或年份日历,选中其他日期查看,查看当日日期。主要功能的 用例描述如下:
(1)查看万年历
1、进入万年历系统; 2、系统获取当日日期并设置日历为当月,红框选中当日日期;
(2)查询当月其他年份
改变年份的方法是选择年份。 下拉菜单选择年份: 1、点击选择年份的下拉菜单,选择年份; 2、系统获取已选择的年份; 3、系统设置为已选年份当月的月历并显示在界面显示。
(3)查询当年的其他月份
改变月份的方法是选择月份。 下拉菜单选择月份: 1、点击选择月份的下拉菜单,选择年份; 2、系统获取已选择的月份; 3、系统设置已选月份为当年的月历并在界面显示。
第 1 页
(4)选择其他日期查看
1、点击其他日期; 2、系统对所有日期的 label 进行监听,判断点击的那个 label; 3、返回被点击的 label 的数组下标; 4、对该下标的 label 设置蓝色边框,表示选中。
三、设计思路http://www.youerw.com/
本课设界面由边界布局构成,主要有北方部件和中央部件两部分。
(1)北方部件上有查询输入部分和时间显示部分:
1 、 两 个下 拉列 表 用于 选 择 的年 份和 月 份, 如 改 变年 份后 系 统用 getShowYear()获得组合框中的中文年份,getCombYear()转换成英文格 式,得到用户选择的年份,同时用 getMonthDays()和 getInitWeek()得 到界面的设定,最终,用 setDays()设置出用户所要求的月历,改变月份 同理; 2、四个 button 按钮用于实现年—、年+、月—、月+,如摁了“年+” 后,系统用 getShowYear()和 getCombYear()获得组合框中的年份,在 其年份上加 1,将改变的年份显示在组合框里,计算出该年月日历的安排, 并用 setDays()设置出用户所要求得月历,其他按钮同理; 3、一个 button 按钮用于实现对今日日期的查找,当用户摁了“今日” 后,系统用 getNowYear ()和 getNowMonth ()得到当日年月,并调用 setNowDay()将系统文本预览:
组合框内年月设为当日年月,显示当月月历,同时系 统用 getNowDay()获得当日日期,用 labelDay[i].setBorder(border1)语句将 当日的日期用蓝色的边框框住表示选定; 4、创建一个标签用于显示时间,监听系统时间并显示。
(2)中央部件上添加系统的结果显示部分:
1、该部分最初显示为当日年月的月历,改变年月后,获得需要显示的 月 份 天 数 m 和 当 月 1 号 是 从 labelDay[n] 开 始 后 按 顺 序 从 添 加 到 labelDay[m+n],遇到周末用 setForeground(Color.red)设定字体显示为红色; 2、对 labelDay 标签进行监听,如果鼠标点击某个 label,判断该标签的 的序号,用 setBorder()为该 label 设置蓝色边框并用 setBordr(null)将上 一个边框清除。
第 2 页
四、详细设计
(1)类设计
本程序创建了一个 MainFrame 类,该类包括了改变年月对月历界面显 示的改变和时间的显示,主要包括函数如表 1 所示: MainFrame
public MainFrame(String title) 界面设计 public void ClockAction(ActionEvent ae) 判断 button 摁键 public int getNowDay( ) 获得现在的日期 public Integer getShowYear( ) 获取组合框中显示的中文格式年份 public int getComboYear( ) 获取组合框中的年份 public int getInitWeek(String initWeek) 返回当月中的 1 号是从星期几开始 public int getMonthDays(int year, int month) 返回所选年月的天数 public void setSysDate(int year,int month) 设置系统日期 public void setChangeDate( ) 改变显示日期 public void setDays(int monthDays,int initWeek,int day) 设置月历
表 1
表 1
(2)界面设计
界面如图 1 所示该界面由上北面的输入选择部分和中央的结果显示部 分组成。输入部分创建两个下拉列表选择年月及 5 个功能按键用于实现日 历的基本操作;结果显示部分根据该月 1 号所属星期和该月的天数设置出 该月月历界面。 for(int i=0;i<7;i++) { labelWeek[i] = new JLabel(); labelWeek[i].setHorizontalAlignment(0); if(i==0||i==6)
第 3 页
{ labelWeek[i].setForeground(Color.red); //设置周末为红色 labelWeek[i].setFont(new Font("新宋体"Font.BOLD,18)); } else { labelWeek[i].setForeground(Color.BLACK); labelWeek[i].setFont(new Font("新宋体"Font.PLAIN,18)); } labelWeek[i].setText(stringWeekCn[i]); } ————————————加上日期的 label————————————— for(int i= 0;i<42;i++) { labelDay[i] = new JLabel(); labelDay[i].setHorizontalAlignment(0); //设置文本的水平对齐方式 labelDay[i].setText(""); panel2.add(labelDay[i]); labelDay[i].addMouseListener(listener); //对 label 进行监听 } ————————————设置月历———————————————— public void setDays(int monthDays,int initWeek,int day) { setDateNull(); for(int i=initWeek;iFont.BOLD,18)); //设置日期的字体 if((i-initWeek+1)==day) { for(int j=0;j<42;j++)
第 4 页
panel2.add(labelWeek[i]);
//initWeek 初始星期
//如果日期为今天
labelDay[j].setBorder(null); labelDay[i].setBorder(border1); } if((i%7==0)||(i%7==6)) labelDay[i].setForeground(Color.red); else labelDay[i].setForeground(Color.BLACK); labelDay[i].setText(String.valueOf(i-initWeek+1)); } for(int i=initWeek+monthDays;i<42;i++) labelDay[i].setText(""); }
(3)功能实现
//选中当日日期
该系统主要实现的功能如图 2 所示
查询指定年份日历
查询指定月份日历 万 年 历 系 统
查询相邻年份日历
查询相邻月份日历
查看今日
选择其他日期
显示时间
图 2
第 5 页
1、当用户需要查询指定年月的日历时,用户将选择框内年月改变,系 统获取信息并设置月历,具体流程如图 3 所示
选择年份月份
获取年月份并转 化为英文格式
获得该月 1 号所在位 置和该月天数
生成日历界面
设置系统为该年 月
图3 2、用户用鼠标点击选择一个日期后,系统可用蓝色方框框住该日期,表示 系统已选择该日,具体流程如图 5 所示
用户点击某一 日期
系统判断用户已点 击标签的下标
清除上一个方 框
对被点击的标签设 一个蓝色方框
图4
五、运行调试与分析讨论
(1)运行结果和分析
图 5 为系统初始界面,系统自动设置为当日年月的月历,并且用红色 框住当日日期。
第 6 页
图5
(2)改进想法
该万年历程序只能显示阳历,可在其基础上加上阴历的显示,当鼠标 点击了某一日的日期时,该日期被框住并且显示出其阴历日期; 每年一些固定的节日如“五一” 、 “十一”可在日历上用红色数字显示 出来; 月历上其他未填日期的空白 label 可用加上上个月和下个月的部分日 期,用灰色表示方便区。
优、设计体会与小结
Java 语言是解释执行的高级编程语言,是面向对象的程序设计语言,功 能强大, 它是解释执行的,能跨平台使用。具有较高的性能和高度的安全性, Java 程序的三级代码安全检查机制可以有效的防止非法代码的入侵,阻止 对内存的越权访问,能够避免病毒的侵害,成为 Internet 上最安全的技术 之一。并且支技多线程,可使用户程序并行执行,即有内存垃圾自动收集机 制。Java 语言是一种“直译”式语言,即用 Java 编写的程序首先被编译 成字节码, 再通过 JVM 解释成机器码, 字节码是 Java 专有的一种中间码, 必须通过 JVM 来解释才能运行。经过了一个学期对《Java 程序设计》的学 习,我们学习了理论知识,了解了 Java 语言程序设计的思想,这些知识都
第 7 页
为我们的下一步学习打下了坚实的基础。 经过这次课程设计使我对 JAVA 图形用户界面的有关知识有了更深入 了解,如几种布局管理器的使用方法,事件的处理机制,SWING 的基本体 系结构,SWING 组件的使用方法,多媒体的实现手段等知识。完成了简单 的万年历功能,本次课程设计的主要内容就是设计一个可以查询日期的程 序,通过选择下拉列表中的年份以及月份来实现日期的查询,及按键改变 年月通过它可以查询到日期的一些具体信息,可以查询所选日期是星期几, 还对星期优与星期日有特殊颜色的标记,方便查看。此外,还可以实现显 示数字时间的功能,简单实用。通过课程设计,能够达到全面、深入理解 和掌握所学内容,能够进行简单的分析和判断。这次课程设计,虽说在设 计过程中遇到了很多的困难,但是在老师的细心指导下,很多不会的问题 都迎刃而解了。此次课程设计一方面是为了检查我们一个学期来我们学习 的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们 认清自己的不足之处和薄弱环节,加以弥补和加强。是对自己学习的一次 很好的检验。能完成这次的课程设计,和身边的同学和老师的帮助分不开 的。在此对指导老师表示感谢,还有帮助过我的一些同学,在此也表示谢 意。在今后的学习中我也会更加努力的。
JAVA课程设计报告模拟时钟下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。