java实现《桌面日历》源码,答辩ppt,实习计划书,实习报告下载链接
https://download.csdn.net/download/weixin_43042683/86949560?spm=1001.2014.3001.5503
一、综合训练任务
设计日历记事本要求:带有日程提醒功能的桌面日历
(1)显示信息: 用户可以向前翻页查询上年的日期,也可以向后翻页查询下年的日期用户可以向前翻页查询上月的日期,也可以向后翻页查询下月的日期。对应的农历节假日和休息日进行了红色标记。
(2)定时提醒:用户可以针对某一天工作需求来添加、编辑这日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。
二、分析与设计
开发工具
本次设计主要采用eclipse开发平台。
界面设计
一个主面板,然后添加三个面板,分别用于实现不同的作用,第一个面板是用于设立各个组件包括按钮下拉列表,编写事件以实现不同的功能。第二个建立了很多标签用于日期的主要显示,第三个是用来显示系统时间。在主界面上有记事本按钮,点击之后会弹出记事窗口,记事窗口,主要是在一个面板各个标签、按钮和文本框的组合,主要有添加提醒事件,添加提醒事件。
类之间的关系
本项目主要有四个类(MainFrame类、Nowtime类、Lunar类、Notepad类)。MainFrame类用于实现整个界面布局和中国节日的输出。Nowtime类主要实现系统时间的显示。Lunar类用于实现农历和公历的转换。Notepad类用于实现记事功能。
三、详细设计说明
1.MainFrame类
Main 函数:程序的主入口。
日历界面的布局。继承Frame类,并实例CalendarBean类以获得日历。在该类中设置了四个按钮及其监听器:<<>>:点击可翻阅上下年的日历。<>:点击可翻阅下下月的日历。两个下拉列表及其监听器:用户通过在下拉列表中选择年份及月份即可查看对应的日历。记事本:点击可添加一项需要提醒的事件以及提醒时间。 点击后弹出Due类的实例化对象。在该界面可编辑提醒具体时间以及事件。
2. Lunar类
农历转换算法getLunar()传统节日的定义
3. Notepad类
引入并实例化了Calendar对象,用于获取当前服务器的具体时间精确;定义变量存储用户输入的提醒事件的具体时间以及事件;定义保存按钮,用户点击后弹出提示对话框“保存成功”。点击“确定”按钮后,通过diapose()方法使对话框和记事界面同时关闭;引入并实例化了SipmleDateFormat对象用于设置时间格式。定义task类,该类继承TimerTask,为使用schedule方法做准备。再将用户的提交时间传入schedule方法,实现定时提醒;当到指定时间时,程序会弹出对话框,对话框内显示用户设置的提醒事件。
4. Nowtime类
为 Canvas 类创建子类NowTime,创建自定义组件mainframe。在NotTime函数中定义界面大小和背景色,进行线程实例化并调用线程。重写paint ()方法,并调SimpleDateFormat函数格式化显示时间。
四、调试与测试
调试
基本功能已经实现,包括项目所要求的农历与公历的计算与转换,可以针对日期记事,以及预订时间提醒。但仍有些问题亟待解决和功能需要完善。
1.年份只能显示1900—2049这150年。当所设置的年份不在这个范围内系统无法显示日期将会报错。如下图:
解决的方法就是增加农历十六进的年月份的表示。
2.记事本时间没有输入或输入非法会直接报错,不能重新编辑。运行报错如下图:
3.记事无法保存在本地,日历窗口关闭,无法弹出所记事的提醒信息。
解决方法:就是在与本机文件相关联,将存入的事件记录在本机上,当重新运行时,文本中的记录会传到项目中。
测试
1.显示功能
(1)所初步展示的界面为系统当月的日期,界面最底层显示当前系统时间,精确到分。
(2)可通过“<<”“>>”按钮进行上年下年的转换,也可以通过下拉列表对年份进行改变显示当年的日期;可通过“<”“>”按钮进行上月、下月的转换,也可以通过下拉列表对月份进行改变显示当月的日期。
2.提醒功能
(3)点击记事本按钮,弹出记事窗口。默认提醒的年月日为当前的年月日,可以进行重新编辑,编辑提醒时间和提醒事件。
(4)默认提醒的年月日为当前的年月日,可以进行重新编辑,编辑提醒时间和提醒事件。
(5)点击保存按钮,则弹出保存验证窗口。点击确定,进行保存。
(6)当设置的提醒时间和系统时间相等时,则弹出提醒窗口。点击确定按钮则窗口关闭。