日历记事本设计(6个类)Java课程设计

  • 格式:doc
  • 大小:2.07 MB
  • 文档页数:34

Java语言与面向对象技术课程设计报告( 2013 -- 2014年度第1 学期)日历记事本专业软件工程学生姓名班级学号指导教师完成日期目录1 概述 (1)1.1 课程设计目的 (1)1.2 课程设计内容 (1)2 系统需求分析 (1)2.1 系统目标 (1)2.2 主体功能 (1)2.3 开发环境 (1)3 系统概要设计 (1)3.1 系统的功能模块划分 (1)3.2 系统流程图 (2)4系统详细设计 (2)5 测试 (5)5.1 测试方案 (11)5.2 测试结果 (12)6 小结 (14)参考文献 (15)附录 (16)附录1 源程序清单 (16)日历记事本1 概述1.1 课程设计目的1.学习Java程序开发的环境搭建与配置,并且在实际运用中学习和和掌握Java 程序开发的过程2.通过课程设计进一步掌握Java程序设计语言的基础内容,如用户图形界面设计等3.通过亲自设计,编写,调试程序来扩展知识面和动手操作能力4.加强研发、调试程序的能力;增强分析、解决问题的能力;提高科技论文写作能力1.2 课程设计内容设计GUI界面的日历记事本。

系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。

2 系统需求分析2.1 系统目标1.系统界面的左侧是日历。

该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前的日历的年份减一;当鼠标左键单击“下年”按钮,当前日历年份加一。

2.该日历也可以在某年内按月前后翻动,鼠标单击“上月”按钮时,当前的日历的月份减一;当鼠标左键单击“下月”按钮,当前日历月份加一。

3.使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。

2.2 主体功能1.用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。

2.通过按按钮“上年”和“下年”对年份进行翻页;通过按按钮“上月”和“下月”对月份进行翻页。

3.用户可以通过输入年份来查看自己的日志。

2.3 开发环境Windows 8;jdk1.5.0-0-05;ultraedit开发工具;3 系统概要设计3.1 系统的功能模块划分本日历记事本共有6个java源文件。

CalendarWindow.java该文件负责创建日历记事本的主窗口,该类含有main方法,程序从该类开始执行。

CalendarMessage.java该文件用来刻画和“日期”有关的数据。

CalendarPad.java该java用来表示“日历”,即负责显示和修改CalendarMessage对象中的日期数据。

NotePad.java该文件负责创建记事本。

CalendarImage.java该文件负责绘制图像。

Clock.java该文件负责显示时钟。

3.2 系统流程图4系统详细设计4.1 CalendarWindow类1.效果图CalendarWindow创建的窗口效果如图4.1所示。

图4.1 CalendarWindow 创建的窗口2.UML 图CalendarWindow 类是javax.swing 包中JFrame 的一个子类,并实现了ActionListener 、MouseListener 和FocusListener 接口,并标明该类的主要成员变量和方法的UML 图如图4.2所示。

以下是UML 图中有关数据和方法的详细说明。

图4.2 CalendarWindow 类的UML 图1)成员变量·year ,month 和day 是int 型整数,它们的值分别确定年份、月份和日期。

·calendarMessage 是CalendarMessage 对象,该对象可以处理和日期有关的JFrameActionListenerMouseListenerFocusListenerCalendarWindowyear,month,day:int calendarImage:CalendarImagecalendarMessage:CalendarMessage clock:Clock calendarPad:CalendarPad nextYear,previousYear,nextMonth,previousMonth:JButton notePad:NotePad saveDailyRecord,deleteDailyRecord,readDailyRecord:JButtonshowYear,showMonth:JTextField dir:File showDay:JTextField[]CalenderWindow():无类型 focusGained(FocusEvent) actionPerformed(ActionEvent):void focusLost(FocusEvent):voidmousePerformed(MouseEvent):void doMark() main(String):void数据。

·calendarPad是CalendarPad对象,该对象可以显示和日期有关的数据。

·notePad是NotePad对象,具有编辑、读取、保存和删除日志的功能。

· showYear和ShowMonth是JTextField类创建的文本框,用来显示年份和月份。

·showDay数组的每个单元是JTextField类创建的用来显示日期的文本框。

·calendarImage是CalendarImage创建的对象,用来显示图像。

·clock是Clock创建的对象,用来显示时钟。

·nextYear,previousYear,nextMonth和previousMonth是JButton创建的按钮对象,名字依次为“下年”,“上年”,“下月”和“上月”。

这些按钮都将当前窗口注册为自己的ActionEvent事件监视器。

·saveDailyRecord,deleteDailyRecord和readDailyRecord是JButton创建的按钮对象,名字依次为“保存日志”、“删除日志”和“读取日志”。

这些按钮都将当前窗口注册为自己的ActionEvent事件监视器。

2)方法·CalendarWindow()是构造方法,负责完成窗口的初始化。

·actionPerformed(ActionEvent)方法是CalendarWindow类实现的ActionListener接口中的方法。

CalendarWindow创建的窗口是nextYear,previousYear,nextMonth、previousMonth、saveDailyRecord,deleteDailyRecord 和readDailyRecord按钮的ActionEvent事件监视器,当用户单击其中按钮时,窗口将执行actionPerformed(ActionEvent)方法进行相应的操作。

·mousePressed(MouseEvent)方法是CalendarWindow类实现的MouseListener 接口中的方法。

CalendarWindow创建的窗口是showDay数组中的JTextField文本框的MouseEvent事件监视器,当用户在某个显示日期的文本框上按下鼠标左键时,窗口将执行mousePressed(MouseEvent)方法进行相应的操作。

·focusGained(FocusEvent)和focusLost(FocusEvent)方法是CalendarWindow 类实现的FocusListener接口中的方法。

CalendarWindow创建的窗口是showDay数组中的JTextField文本框的FocusEvent事件监视器,当用户的操作导致某个显示日期的文本框的焦点发生变化时,窗口将执行focusGained(FocusEvent)或focusLost(FocusEvent)方法进行相应的操作。

·doMark()方法负责对有日志的日期作出标记。

·main方法是程序运行的入口方法。

4.2 CalendarMessage类1.效果图CalendarMessage创建的对象负责处理和日期有关的数据。

没有可显示的效果图。

2.UML图CalendarMessage类创建的对象calendarMessage是CalendarWindow窗口的重要成员之一,负责处理和日期有关的数据。

标明CalendarMessage类的主要成员变量和方法以及和CalendarWindow类之间组合关系的UML图如图4.3所示。

图4.3 CalendarMessage类的UML图以下是UML图中有关数据和方法的详细说明。

1)成员变量year,month和day是int型数据,它们的值分别确定年份、月份和日期。

2)方法·setYear(int)和getYear()方法分别用来设置year和获取year的值。

·setMonth(int)和getMonth()方法分别用来设置month和获取month的值。

·setDay(int)和getDay()方法分别用来设置day和获取day的值。

·getMonthCalendar()方法按着习惯来处理日期数据,即日历牌中每行的第一列为“星期日”。

getMonthCalendar()方法根据year,month和day的值返回一个存放着“日历”数据的String类型的数组,例如,如果某月有30天,而且该月的1日是星期三,那么返回的String类型的数组是:“”,“”,“”,“1”,“2”,...“30”。

4.3 CalendarPad类1.效果图CalendarPad创建的对象效果如图4.4所示。

图4.4 CalendarPad 创建的对象2.UML 图CalendarPad 类是javax.swing 包中JPanel 容器的子类,所创建的对象:calendarPad 是CalendarWindow 类中最重要的成员之一,负责显示经CalendarMessage 对象处理后的日期数据,被添加到CalendarWindow 窗口的左上侧。

标明CalendarPad 类的主要成员变量、方法以及和CalendarWindow 类之间组合关系的UML 图如图4.5所示。

图4.5 CalendarPad 类的UML 图以下是UML 图中有关数据和方法的详细说明。

1)成员变量·year,month 和day 是int 型数据,它们的值分别确定年份、月份和日期。