1、 课程论文课程论文 课程论文题目:JAVA 日历小程序 课程名称:Java 程序设计(双语) 评阅成绩: 评阅意见: 成绩评定教师签名: 日期: 年 月 日 目 录 摘 要 . - 1 - 关键词 . - 1 - 1 需求分析 - 1 - 1.1 需求分析 - 1 - 1.2 功能设计 - 1 - 2 概要设计 - 1 - 2.1 开发环境 - 1 - 2.2 程序设计思路 - 1 - 2.3 具体功能设计 - 2 - 2.4 程序运行界面 - 2 - 2.5 程序流程图 - 3 - 3 详细设计 - 3 - 3.1 初始化组件 - 3 - 3.2 初始化程序数据,绘制程序面板 - 3 - 3
2、.3 显示日期的方法 - 6 - 3.4 点击按钮产生的效果 - 8 - 4 程序测试 - 9 - 4.1 程序不能完全退出 - 9 - 4.2 下拉列表数据不能返回 . - 10 - 5 心得体会 . - 10 - 6 参考文献 . - 11 - 致谢 - 11 - 附:程序源代码 - 12 - - 1 - JAVA 日历小程序日历小程序 学 生:郭显勇、刘彦波、任涛 湖南农业大学信息科学技术学院 2008 级信息工程 2 班 学号 200841843227、200841843228、200841843219 摘摘 要:要: 万年历是一个强大的日历系统,通过它可以实现对过去,现在以及 将来日
3、期的查询,通过在年份对话框中输入要查询的年份,再相应的在月份对应 的下拉菜单选择要查询的月份, 则可得到相应的日历。 本实验是对图形用户界面, 布局管理器的综合运用,理解 JAVA 的时间处理机制,编写独立运行的窗口。 关键词:关键词: 日历;swing;布局管理器; 1 1 需求分析需求分析 1.11.1 需求分析需求分析 本程序的要求为: 1.使用图形用户界面; 2.本程序能够实现日期与星期的查询。 1.21.2 功能设计功能设计 本程序要构建的万年历程序,其功能有以下几个方面: 1.实现图形界面。 2.能以月历形式显示日期与星期。工作日、双休日、当天分别以黑色、红色和 蓝色显示。 3.支
4、持用户通过下拉形式菜单来选择月份。 4.通过点击“现在日期”来刷新日历。 2 2 概要设计概要设计 2.12.1 开发环境开发环境 开发平台:Microsoft Windows XP Professional Service Pack 2 开发工具:Eclipse SDK 3.2.0 + JDK 1.6.0_02 2.22.2 程序设计思路程序设计思路 1.月份总天数的算法:直接根据 month_int,即月份序号判断该月的天数。 当 month_int 等于 2 时,调用 isLeapYear()方法判断是否为闰年。 - 2 - 2.网格内容算法:用 dt.getDate()方法算出输出月份
5、第一天为星期几,第 一天的格子序号应该为 7+第一天的星期序号。算出输出月份第一天为星期几后, 把该日期以前的位置用空格补上,并从该日起一次输出天数直到月底,该月中的 天数加上该月一日为星期几的数字再除以 7 得 0 换行, 即可完整的输出该月的日 历。 3.日期颜色的算法:格子数从 0 开始,第一行为星期序号,则日期从第 7 格开始。根据格子序号 i 进行判断,当 i 模 7 余数为 0 或者 6 时日期为周末,置 为红色;当 i 等于第一天的格子序号加上当前日期减一时,置为蓝色;其余日期 为黑色。 4.如果年份小于 2001 年大于 2031 年则程序不予判断。 2.32.3 具体功能设计
6、具体功能设计 数据选择列表:年份选择列表、月份选择列表。 点击日期跳转按钮,即在日历中显示用户选择日期数据; 点击现在日期按钮,即在日历中显示当前日期数据。 2.42.4 程序运行界面程序运行界面 (图 2.4.1:程序运行界面截图) - 3 - 2.52.5 程序流程图程序流程图 (图 2.5.1:程序流程图) 3 3 详细设计详细设计 3.13.1 初始化组件初始化组件 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; 3.23.2 初始化程序数据,绘制程序面板初始化程序数据,绘制程序面板 在初始化模块中,首先定义一个公共类 CalenderTrain,它继承自 JFrame。 ActionListener 是一个接口,在实现此接口的类 CalenderTrain 中,给需要关 注其动作的组件跳转按钮 button_jump 和现在日期按钮 button_today 添加监听 器(addActionListener(t