1、 JAVA 课程设计报告 系 别: 计 算 机 系 班 级: 计本 1119 班 姓 名: 学 号: 指导教师: 模模模模拟拟拟拟时时时时钟钟钟钟 第 1 页 一、课程设计一、课程设计任务任务及要求及要求 (1)设计任务:)设计任务: 编写一个 Java 万年历程序,实现日期和星期的查询。 (2)设计要求)设计要求: 1、主界面采用边界布局,北面是一个设置年月的控制面板,中间是日 历绘制区; 2、单击“月份”的下拉式菜单,可以显示当前月的上一月/下一月的日 历; 3、单击“年份”的下拉式菜单,可以显示上一年/下一年的当前日历; 二、需求分析二、需求分析 对于万年历系统,其主要功能是:查看当日日
2、期(年、月、日) 、查看 当时时间、查看其他年月的月历。主要使用流程是:查看万年历系统,查 看其他月份或年份日历,选中其他日期查看,查看当日日期。主要功能的 用例描述如下: (1)查看万年历)查看万年历 1、进入万年历系统; 2、系统获取当日日期并设置日历为当月,红框选中当日日期; (2)查询当月其他年份)查询当月其他年份 改变年份的方法是选择年份。 下拉菜单选择年份: 1、点击选择年份的下拉菜单,选择年份; 2、系统获取已选择的年份; 3、系统设置为已选年份当月的月历并显示在界面显示。 (3)查询当年的其他月份)查询当年的其他月份 改变月份的方法是选择月份。 下拉菜单选择月份: 1、点击选择
3、月份的下拉菜单,选择年份; 2、系统获取已选择的月份; 3、系统设置已选月份为当年的月历并在界面显示。 第 2 页 (4)选择其他日期查看)选择其他日期查看 1、点击其他日期; 2、系统对所有日期的 label进行监听,判断点击的那个 label; 3、返回被点击的 label的数组下标; 4、对该下标的 label设置蓝色边框,表示选中。 三、三、设计思路设计思路 本课设界面由边界布局构成,主要有北方部件和中央部件两部分。 (1)北方部件上有查询输入部分和时间显示部分:北方部件上有查询输入部分和时间显示部分: 1、两个下拉列表用于选择的年份和月份,如改变年份后系统用 getShowYear(
4、)获得组合框中的中文年份,getCombYear()转换成英文格 式,得到用户选择的年份,同时用 getMonthDays()和 getInitWeek()得 到界面的设定,最终,用 setDays()设置出用户所要求的月历,改变月份 同理; 2、四个 button 按钮用于实现年、年+、月、月+,如摁了“年+” 后,系统用 getShowYear()和 getCombYear()获得组合框中的年份,在 其年份上加 1,将改变的年份显示在组合框里,计算出该年月日历的安排, 并用 setDays()设置出用户所要求得月历,其他按钮同理; 3、一个 button按钮用于实现对今日日期的查找,当用户
5、摁了“今日” 后,系统用 getNowYear()和 getNowMonth()得到当日年月,并调用 setNowDay()将系统组合框内年月设为当日年月,显示当月月历,同时系 统用 getNowDay()获得当日日期,用 labelDayi.setBorder(border1)语句将 当日的日期用蓝色的边框框住表示选定; 4、创建一个标签用于显示时间,监听系统时间并显示。 (2)中央部件上添加系统的结果显示部分:中央部件上添加系统的结果显示部分: 1、该部分最初显示为当日年月的月历,改变年月后,获得需要显示的 月份天数 m 和当月 1 号是从 labelDayn开始后按顺序从添加到 labe
6、lDaym+n,遇到周末用 setForeground(Color.red)设定字体显示为红色; 2、对 labelDay 标签进行监听,如果鼠标点击某个 label,判断该标签的 的序号,用 setBorder()为该 label设置蓝色边框并用 setBordr(null)将上 一个边框清除。 第 3 页 四、详细设计四、详细设计 (1)类设计类设计 本程序创建了一个 MainFrame 类,该类包括了改变年月对月历界面显 示的改变和时间的显示,主要包括函数如表 1 所示: MainFrame 表 1 表 1 (2)界面设计界面设计 界面如图 1 所示该界面由上北面的输入选择部分和中央的结果显示部 分组成。输入部分创建两个下拉列表选择年月及 5 个功能按键用于实现日 历的基本操作;结果显示部分根据该月 1 号所属星期和该月的天数设置出 该月月历界面。 for(int i=0;i7;i+) labelWeeki = new JLabel(); labelWeeki