面向对象程序的设计说明书与程序(日历记事本)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

日历记事本

1.课程设计目的

通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。

本课程设计设计GUI界面的日历记事本,系统将日历和记事本结合在一起,可以方便的保存、查看日志,即在任何日期记载下有关容或查看某个日期记载的容。

2.设计方案论证

2.1设计思路

2.1.1 本系统界面的左侧是日历和一幅图像。该日历可以按年前后翻动,用鼠标左键单击“上年”按钮,可将当前日历的年份减一;用鼠标左键单击“下年”按钮,可将当前日历的年份加一。该日历还可以在某年按月前后翻动,用鼠标单击“上月”按钮,可将当前日历的月份减一;用鼠标单击“下月”按钮,可将当前日历的月份增一。

2.1.2 系统界面的右侧是记事本和一个时钟。用鼠标单击日历上的日期,就可以通过该记事本编辑有关日志,并将日志保存到一个文件。该文件的名字是由当前日期组成的字符序列。用户可以查看、删除某个日期的日志,也可以继续向某个日志添加新的容。2.1.3 当某个日期有日志时,显示该日期的外观上就会出现“有”标记,表明这个日期有日志;当用户删除某个日期的日志后,该日期的外观上的“有”

标记就会消失。

2.2设计方法

在设计日历记事本时,需要编写6个Java源文件:CalendarWindow.java、CalendarPad.java、NotePad.java、CalendarImage.java 、Clock.java和CalendarMessage.java。

日历记事本除了需要编写的上述6个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。

2.2.1 CalendarWindow.java 主类

该类创建动态日历记事本的主窗口,该类含有main方法,是程序的入口

程序,CalenderWindow类的成员变量中有5种重要类型的对象, CalendarPad、NotePad、CalendarImage、Clock、CalendarMessage对象。

2.2.2 CalenderMessage.java

该类用来刻画和“日期”有关的数据。

2.2.3 CalenderPad.java

该类是JPanel类的子类,所创建的对象是CalendarWindow类的重要成员之一,用来表示”日历”,即负责显示和修改CalendarMessage对象中的日期数据。

2.2.4 Notepad.java

该类是JPanel的一个子类,创建的对象表示“记事本”,提供编辑读取和保存阐述日志的功能。

2.2.5 CalendarImage.java

该类所创建的对象是CalendarWindow类的成员之一,负责绘制图像。

2.2.6 Clock.java

该类创建的对象是CalendarWindow类的成员之一,负责显示时钟。

日历记事本用到的一些重要的类以及之间的关系如图1所示。

图1 类之间的组合关系图

2.3功能模块

此设计共有以下几个功能模块。

2.3.1 年份改变

点击一次“上年”按钮可增加一年,点击一次“下年”按钮可减少一年,多次连

续点击即可依次改变多个年份。

2.3.2 月份改变

点击一次“上月”按钮可以增加一月,点击一次“下年”按钮可以减少一月,多次连续点击即可一次改变多个月份。

2.3.3 日期显示

用于显示当前所选择的所在的年份月份的所有日期、星期,并在记载有日志的日期格中左上角显示“有”标记,而没有记载日志的日期则没有任何标记。

2.3.4 图片显示

为了使本设计界面美观,设置了图片显示模块,使整个设计更加实用、美观、大方。

2.3.5 日志显示

界面的右侧上半部的文本框中,可以选择某天记载日志,并且读取的日志在此部

分显示出来。

2.3.6 时钟显示

以传统时钟(有时针、分针、秒针)的模式显示当前的时间。

2.3.7 保存、删除、读取日志。

可以在没有记载日志的日期里记载日志并保存,可以对以保存的日志进行读取、修改或者删除。

2.4流程图如下

图2 流程图

2.5类、方法、属性说明

2.5.1 CalendarWindow类

(1)成员变量

·year,month和day是int型数据,它们的值分别确定年份、月份和日期。·calendarMessage是CalendarMessage对象,该对象可以处理和日期有关的数据。·calendarPad是CalendarPad对象,该对象可以显示和日期有关的数据。·notePad是NotePad对象,具有编辑、读取、保存和删除日志的功能。·showYear和showMonth是JTextField类创建的文本框,用来显示年份和月份。·showDay数组的每个单元是JTextField类创建的用来显示日期的文本框。·calendarImage是CalendarImage创建的对象,用来显示图像。

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

·nextYear等是JButton创建的按钮对象,名字依次为“下年”、“上年”、“下月”、“上月”。这些按钮都将当前窗口注册为自己的ActionEvent事件监听者。·saveDauktRecord,deleteDailyRecord,readDailyRecord是JButton创建的按钮对象,名字依次为“保存日志”、“删除日志”、“读取日志”。这些按钮都当前窗口注册为自

己的ActionEvent事件监听者。

(2)方法

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

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

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

的方法。

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

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

2.5.2 CalenderMessage类

(1)成员变量

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

(2)方法

·setYear(int)和getYear()方法分别用来设置year和获取year的值。·setMonth(int)和getMonth()方法分别用来设置month和获取month的值。·setDay(int)和getDay()方法分别用来设置day和获取day的值。

2.5.3 CalenderPad类

(1)成员变量

·year、month和day是int型数据,它们的值分别确定年份、月份和日期。·calenderMessage是CalenderMessage对象,该对象可以处理和日期有关的数据。·showDay数组的每个单元是JTextField类创建的用来显示日期的文本框。

(2)方法

·CalenderPad()是构造方法,用来创建calenderPad对象。·setShowDayTextField(JTextField[])方法负责设置showDay数组。·showMonthCalendar()方法负责显示“日历”。

相关文档
最新文档