logo资料库

java课程设计 日历记事本(含有代码).pdf

第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
资料共23页,剩余部分请下载后查看
课程设计说明书 NO.1 通过此次课程设计,巩固所学 Java 语言基本知识,增进 Java 语言编辑基本功,掌 握 JDK、Editplus、Eclipse、JCreator 等开发工具的运用,拓宽常用类库的应用。使 我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握 Java 语 言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 本课程设计设计 GUI 界面的日历记事本,系统将日历和记事本结合在一起,可以方 便的保存、查看日志,即在任何日期记载下有关内容或查看某个日期记载的内容。 本系统界面的左侧是日历和一幅图像。该日历可以按年前后翻动,用鼠标左键单 击“上年”按钮,可将当前日历的年份减一;用鼠标左键单击“下年”按钮,可将当前 日历的年份加一。该日历还可以在某年内按月前后翻动,用鼠标单击“上月”按钮,可 将当前日历的月份减一;用鼠标单击“下月”按钮,可将当前日历的月份增一。 系统界面的右侧是记事本和一个时钟。用鼠标单击日历上的日期,就可以通过该 记事本编辑有关日志,并将日志保存到一个文件。该文件的名字是由当前日期组成的字 符序列。用户可以查看、删除某个日期的日志,也可以继续向某个日志添加新的内容。 当某个日期有日志时,显示该日期的外观上就会出现“有”标记,表明这个日期 有日志;当用户删除某个日期的日志后,该日期的外观上的“有” 标记就会消失。 在设计 日历 记事 本 时 , 需要 编写 6 个 Java 源 文件 : CalendarWindow.java 、 CalendarPad.java 、 NotePad.java 、 CalendarImage.java 、 Clock.java 和 CalendarMessage.java。 日历记事本除了需要编写的上述 6 个 Java 源文件所给出的类外,还需要 Java 系统 提供的一些重要的类,如 JTextField、JTextArea 和 File 类。 该类创建动态日历记事本的主窗口,该类含有 main 方法,是程序的入口 沈 阳 大 学
课程设计说明书 NO.2 程序,CalenderWindow 类的成员变量中有 5 种重要类型的对象, CalendarPad、NotePad、 CalendarImage、Clock、CalendarMessage 对象。 该类用来刻画和“日期”有关的数据。 该类是 JPanel 类的子类,所创建的对象是 CalendarWindow 类的重要成员之一,用 来表示”日历”,即负责显示和修改 CalendarMessage 对象中的日期数据。 该类是 JPanel 的一个子类,创建的对象表示“记事本”,提供编辑读取和保存阐述 日志的功能。 该类所创建的对象是 CalendarWindow 类的成员之一,负责绘制图像。 该类创建的对象是 CalendarWindow 类的成员之一,负责显示时钟。 日历记事本用到的一些重要的类以及之间的关系如图 1 所示。 CalendarWindow CalendarImage CalenderMessage CalenderPad JTextField Notepad Clock File JTextArea 图 1 类之间的组合关系图 此设计共有以下几个功能模块。 点击一次“上年”按钮可增加一年,点击一次“下年”按钮可减少一年,多次连 续点击即可依次改变多个年份。 沈 阳 大 学
课程设计说明书 NO.3 点击一次“上月”按钮可以增加一月,点击一次“下年”按钮可以减少一月,多 次连续点击即可一次改变多个月份。 用于显示当前所选择的所在的年份月份的所有日期、星期,并在记载有日志的日 期格中左上角显示“有”标记,而没有记载日志的日期则没有任何标记。 为了使本设计界面美观,设置了图片显示模块,使整个设计更加实用、美观、大方。 界面的右侧上半部的文本框中,可以选择某天记载日志,并且读取的日志在此部 分显示出来。 以传统时钟(有时针、分针、秒针)的模式显示当前的时间。 可以在没有记载日志的日期里记载日志并保存,可以对以保存的日志进行读取、修改或 者删除。 沈 阳 大 学
课程设计说明书 NO.4 开始 显示窗口界面 选择日期 保存日志 是 保存并标记 有 “ ” 读取日志 是 显示日志 删除日志 是 删除并去掉 “ 有 ” 否 否 否 结束程序 图 2 流程图 (1)成员变量 ·year,month 和 day 是 int 型数据,它们的值分别确定年份、月份和日期。 ·calendarMessage 是 CalendarMessage 对象,该对象可以处理和日期有关的数据。 ·calendarPad 是 CalendarPad 对象,该对象可以显示和日期有关的数据。 ·notePad 是 NotePad 对象,具有编辑、读取、保存和删除日志的功能。 ·showYear 和 showMonth 是 JTextField 类创建的文本框,用来显示年份和月份。 ·showDay 数组的每个单元是 JTextField 类创建的用来显示日期的文本框。 ·calendarImage 是 CalendarImage 创建的对象,用来显示图像。 沈 阳 大 学
·clock 是 Clock 创建的对象,用来显示时钟。 课程设计说明书 NO.5 ·nextYear 等是 JButton 创建的按钮对象,名字依次为“下年”、“上年”、“下月”、“上 月”。这些按钮都将当前窗口注册为自己的 ActionEvent 事件监听者。 ·saveDauktRecord,deleteDailyRecord,readDailyRecord 是 JButton 创建的按钮对象, 名字依次为“保存日志”、“删除日志”、“读取日志”。这些按钮都当前窗口注册为自 己的 ActionEvent 事件监听者。 (2)方法 ·CalendarWindow()是构造方法,负责完成窗口的初始化。 ·actionPerformed(AcrionEvent)方法是 CalendarWindow 类实现的 ActionListner 接 口中的方法。 ·mousePressed(MouseEvent)方法是 CalendarWindow 类实现的 MouseListener 接口中 的方法。 ·doMark()方法负责对有日志的日期作出标记。 ·main 方法是程序运行的人口方法。 (1)成员变量 year、month 和 day 是 int 型数据,它们的值分别确定年份、月份和日期。 (2)方法 ·setYear(int)和 getYear()方法分别用来设置 year 和获取 year 的值。 ·setMonth(int)和 getMonth()方法分别用来设置 month 和获取 month 的值。 ·setDay(int)和 getDay()方法分别用来设置 day 和获取 day 的值。 (1)成员变量 ·year、month 和 day 是 int 型数据,它们的值分别确定年份、月份和日期。 ·calenderMessage 是 CalenderMessage 对象,该对象可以处理和日期有关的数据。 ·showDay 数组的每个单元是 JTextField 类创建的用来显示日期的文本框。 (2)方法 ·CalenderPad()是构造方法,用来创建 calenderPad 对象。 ·setShowDayTextField(JTextField[])方法负责设置 showDay 数组。 沈 阳 大 学
·showMonthCalendar()方法负责显示“日历”。 课程设计说明书 NO.6 (1)成员变量 ·text 是 JTextArea 创建的文本区,可在 text 中编辑多行文本。 ·menu 是 JpopupMenu 创建的弹出式菜单。 ·showMessage 是 JTextField 创建的文本条,用来显示和日期有关的数据。 (2)方法 ·Notepad()是构造方法,用来创建 notePad 对象。 ·setShowMessage(int,int,int)方法根据参数指定的日期数据显示有关日期信息。 ·save(File,int,int,int)方法根据参数指定的日期保存日志。 ·delete(File,int,int,int)方法删除参数日期指定的日志。 (1)成员变量 ·imageFile 是 File 对象,用来存放图像文件的引用。 ·image 是 Image 对象。 ·tool 是 Toolkit 对象,负责创建 image 对象。 (2)方法 ·CalendarImage()是构造方法,负责创建 calendarImage 对象。 ·paintComponent(Graphics)方法负责绘制 image。 (1) 成员变量 ·date 是 Date 对象,负责封装本地时间。 ·secondTime 是 javax.swing 包中 Timer 类中创建的计时器。 ·pointSX,pointSY 是 double 型数组,其单元值用来表示秒针端点坐标。 (2) 方法 ·Clock()是构造方法,用来创建 clock 对象。 ·paintComonent(Graphics)负责完成绘制工作。 将 6 个 Java 源文件:CalendarWindow.java、CalendarPad.java、NotePad.java、 沈 阳 大 学
课程设计说明书 NO.7 CalendarImage.java 、 Clock.java 和 CalendarMessage.java , 以及所 需要 的名 为 flower.jpg 的图像文件保存到同一目录中。分别编译这 6 个 Java 源文件,或运行“javac *.java”命令,编译全部的源文件,然后运行主类,即运行 CalendarWindow 类。 运行结果图中可以看出记载日志的日期中会有“有”标记,而没有记载日志的日期 中没有“有”标记。右下侧是时钟,左下角显示图片。 图 3 运行结果图 在此结果中,点击上方的“上年”或“下年”可以改变年份,点击“上月”或“下 月”可以改变月份。右下角显示当前的时间。可以在任意一天记日志,在有“有”标记 的日期查看日志或删除日志。 当想保存日志时,选中某一天,在右侧记下日志点击“保存”即可。 当想查看某天的日志是选中带“有”标记的当天,点击“读取日志”可出现图 4 所 示的提示框,点击是即可读取日志就可以查看日志内容,如图 5 所示。 图 4 提示显示页面图 图 5 查看日志图 若想要删除已有的日志,则选中要删除的日期,点击“删除日志”,则出现提示框, 如图 6 所示,询问是否要删除,点击“是”,则删除了此篇日志,此时,原有的“有” 字标记就会消失,此篇日志也就随之消失,如图 7 所示。 图 6 提示删除页面图 沈 阳 大 学
课程设计说明书 NO.8 图 7 删除后页面图 经过几天的努力,参考了一些书和网上的资料,完成了一个日历记事本的设计。 由于只学过一学期的 Java 课程,知识掌握的有限,所以此程序不是特别复杂。在 这个过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多 不足,对 语言整体知识构架不够熟悉,不能灵活地运用所学的知识点。自己的编 JAVA 程方式也不是太标准,经常出现代码写错而调试很久的低级错误情况出现。通过这次课 程设计,我明白了编写程序,不仅要求对课本知识有较深刻的了解,同时要求程序设计 者有较强的思维和动手能力。还要熟悉常用的编程技巧和编程思想,不能只关心程序的 运行结果,更要注重程序代码的结构,编程者更要有严谨地态度。 本次课程设计不仅巩固了以前所学的知识,还有通过设计过程中大量地查阅网络文 章,对一些关键知识点逐个地了解并解决相关问题。所以网络这个强大的工具,确实是 我们学习之中可以借助的一个很好的帮手。网络是我们学习的最好的老师之一。有问题, 问网络,是一个很好的习惯。因此学到了不少书本上没有的知识;学到了很多 java 编 程知识。可以说它给了我一次自我评估的机会。通过设计让我知道了那些方面我还是有 欠缺的,促使我花时间弥补。总之,本次课程设计收获颇丰。 陈国君,陈磊,刘洋. 程序设计基础 Java2 .北京:清华大学出版社; 沈 阳 大 学 2008.6 [M] [1]
分享到:
收藏