基于Java的日历记事本.doc
《基于Java的日历记事本.doc》由会员分享,可在线阅读,更多相关《基于Java的日历记事本.doc(33页珍藏版)》请在沃文网上搜索。
1、.摘 要Java是Sun公司推出的一种基于面向对象技术的编程语言,同时也是一种跨 平台的程序设计语言,是软件开发的一种革命性技术,已被列为当今世界信息技术的主流之一,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。Java 有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、多线程、动态性等。用JAVA 语言进行程序开发,目前十分流行。本设计通过 JAVA 来实现具有图形界面的日历记事本,体现了 JAVA 的高效性等特点。随着社会的发展,越来越多的人依靠电子产品生活,而他们
2、的日常工作也是离不开这些电子产品的,所以开发出一款日历备忘录就显得必不可少了。利用面向对象的程序设计语言Java来实现具有图形界面的日历记事本。日历具有基本的浏览和日期修改的功能。记事本具有输入、保存、删除、查看等基本功能。关键词:面向对象 Java 日历 记事本目 录摘 要I目 录II第1章 绪论31.1 概 述31.2 课程设计题目31.3 课程设计目的31.4 课程设计内容3 1.5 项目背景和目标3第2章 系统需求分析52.1 系统目标52.2 主体功能52.3 开发环境5第3章 系统概要设计63.1 系统的功能模块划分63.2 系统流程6第4章 系统详细设计84.1 程序变量和方法8
3、第5章 算法描述和编码实现105.1 类的算法105.2 编码实现11第6章 测试14 6.1 测试方案14 6.2 测试结果14总结18参考文献19附录20 第1章 绪论1.1 概 述 日历记事本的包括日历和日志记事本两部分:日历部分采用公历历法,界面设计:日期部分每行7天,每列 5天,可完全 记录一个月中的所有天数。星期采用中文显示,每行的第一天为星期日。星期六显示为蓝色,星期日显示为红色,当前日期显示为绿色,其它日期显示为黑色。年份通过负数表示公元前,正数表示公元后。用户可通过使用鼠标点击按钮的方式改变日历的年份和月份。记事本部分提供输入、保存、显示、删除日志的功能。用户输入的日志记录在
4、本系统所在的目录保存为后缀名为.txt的文本文件。 用户只要选定要查看日志的日期,即可以通过鼠标点击显示日志的按钮来实现。1.2 课程设计题目基于Java语言的日历记事本1.3 课程设计目的1.巩固和提高java编程技术。2.培养掌握成学设计的基本思路和方法。3.加强研发、调试程序的能力。4.增强分析、解决问题的能力。5.提高科技论文写作能力。1.4 课程设计内容设计GUI界面的日历记事本。系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。为使用者记录、管理个人日记以及每日心里路程,其中主要实现以下功能 本系统界面的左侧是日历。系统界面的右侧是记
5、事本。选择具体日期后,可以将记事本的内容保存起来,形成一个日志。显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。1.5 项目背景和目标目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。按照教学培养计划要求,学生在学习完课本中指定课时的知识后,应安排一定课时的课程设计。其主要目的是使学生深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等。故此“日历记事本”应运而生。本课程设计是为
6、了配合Java程序设计课程,帮助学生深入学习掌握Java语言,熟练运用这个工具而设立的课程。通过课程设计各个项目的综合训练,加强学生对JAVA语言的理解,检验学生对专业理论知识理解与掌握的程度,锻炼学生综合运用JAVA程序设计处理所学的知识实际分析问题、解决问题的能力,使课堂上的理论在实践中得到运用,提高学生的综合素质,为学生毕业后的实际工作打好基础。同时也满足了大多数同学对于一款简单易用的日记本软件的需求。第2章 系统需求分析2.1 系统目标1系统界面的左侧是日历。该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前日历的年份减一;当鼠标左键单击“下年”按钮,当前日历的年份加一。2该日历也
7、可以在某年内按月前后翻动。当鼠标左键单击“上月”按钮时,当前日历的月份减一;当鼠标左键单击“下月”按钮时,当前日历的月份加一。3使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。4用户选择具体日期后,可以将记事本的当前内容保存起来,形成日志。 2.2 主体功能用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。通过按按钮“上年”和“下年”对年份进行翻页。通过按按钮“上月”和“下月”对月份进行翻页。用户可以通过输入年份来查看自己的日志。显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。定时
8、提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。查询信息:用户可以查询到某个月的所有的提示信息。页面设计分为左右两个部分,左部分为日历的视图,上边放置了调节年份和月份的按钮,下边是日历的格式。右部分作为一个备忘录的文本域。当该日写有备忘时,会在文本域弹出提示有备忘是否查看。文本域的下边设有增加备忘和删除当前备忘的按钮。2.3 开发环境Windows XP;jdk1.5.0-0-05;ultraedit开发工具第3章 系统概要设计3.1 系统的功能模块划分本日历记事本共有4个java源文件。CalendarPad.java:
9、该java文件生成的类负责创建本日历记事本程序主窗口。该类含有main方法,程序从该类开始执行。Year.java:该文件负责创建管理年份的对象。Month.java:该文件负责创建管理月份对象。NotePad.java:该文件负责创建记事本。CalendarPad(主类)NotePadYearMonth 图3-1 类之间的关系3.2 系统流程1.系统实现设置日历牌 CalendarPad 排列号码mousePressed 事件 图3-2 系统功能结构2.系统实现流程CalendarPad作为主函数的入口。调用NotePad类的方法完善自己的窗口。当对窗口的年份和月份进行改变时就会触发Year
10、类和Month类里的触发器和方法,从而达到日历备忘录的目的。是 显示窗口界面保存日志 删除日志读取日志保存日志显示日志 选择日期删除并去掉“有” 否 是 是是 否否结束程序 开始 图3-3 系统流程实现第4章 系统详细设计4.1 程序变量和方法在设计日历记事本时,需要编写3个Java类:CalendarPad.java、Year.java、NotePad.java、month.java。日历记事本除了需要编写的上述3个Java所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。图形界面至少要有一个顶级Swing容器顶级Swing容器为其它
11、Swing组件在屏幕上的绘制和处理事件提供支持;常用的顶级容器:Frame(框架):表示主程序窗口JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口JApplet(小程序):在浏览器内显示一个小程序界面一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格窗格也可以看作是一种面板,但它是框架的一个组成部分组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板public static void main(String args)JFrame fr
12、ame=new JFrame(SwingApplication);JPanel panel1=new JPanel();frame.getContentPane().add(panel1,BorderLayout.CENTER);关键是java.awt.*里面的两个与显示设备有关的类:GraphicsEnvironment和GraphicsDevice。GraphicsEnvironment为Java应用程序提供了特定平台的 GraphicsDevice对象和 Font 对象集合。这些GraphicsDevice可以是各种本机和远端机器的资源,如屏幕、打印机或者是Image Buffer,甚至
13、是Graphics2D绘图方法的目标对象。而GraphicsDevice就是指特定的图形环境了,如屏幕和打印设备等。这样,我们就可以用GraphicsDevice来操纵屏幕了。GraphicsDevice提供的setFullScreenWindow()方法就是设置全屏幕用的。监听器actionlistion:方 法:actionPerformed事 件:ActionEvent String getActionCommand()actioncommand是控件内部的一个字符串,用于标识控件的状态。此函数可以取得控件的状态,从而决定到底该做什么。 int getModifiers()取得“产生此事
14、件时,用户同时按下的组合键” long getWhen()取得“产生此事件时的时间戳”事件产生原因:点击按钮,在列表框中选择内容,在文本框中点回车,计时器到期。1.CalendarPad类 表4-1主要成员变量(属性) 成员变量描述变量类型名称年、月、日intYear,month,day保存日志的散列表Hashtablehashtable存放散列表的文件Filefile显示日期JTextFieldshowDay日历对象Calendar日历记事本对象NotePadnotepad月Month负责改变月年Year负责改变年 表4-2 主要方法 名称功能备注CalendarPad创建程序主窗口构造方法
15、设置日历牌设置日历的年份、月份排列号码排列月份中的号码mousePressed处理MouseEvent事件接口方法mian程序开始运行2.记事本NotePad 表4-3主要成员变量(属性) 描述变量类型名称文本输入区JTextAreatext保存、删除日志的按钮Button保存日志、删除日志保存日志的散列表Hashtabletable保存散列表的文件Filefile记录日志的年、月、日intyear,month,day 表4-4 主要方法名称功能备注NotePad创建记事本对象构造方法setYear设置年份getYear获取年份setMonth设置月份getMonth获取月份setDay设置日
16、期getDay获取日期获取日志内容获取日志内容保存日志保存日志删除日志删除日志actionPerformed处理ActionEvent事件接口方法3.年Year 表4-5主要成员变量(属性)描述变量类型名称表示年份的整数(负数表示公元前)intyear显示年份的文本条JTextFieldshowYear负责增减年份的按钮JButton明年,去年 表4-6 主要方法名称功能备注Year创建“年”对象构造方法setYear设置年份getYear获取年份actionPerformed处理ActionEvent事件接口方法4.月Month 表4-7主要成员变量(属性)描述变量类型名称表示月份的整数(负
17、数表示公元前)intmonth显示月份的文本条JTextFieldShowMonth负责增减月份的按钮JButton上月,下月 表4-8 主要方法名称功能备注 Month创建“月”对象构造方法set Month 设置月份get Month 获取月份actionPerformed处理ActionEvent事件接口方法第5章 算法描述和编码实现5.1 类的算法主类的算法:CalendarPad 类首先创建用于布局的面板,左面添加日历牌,右面添加记事本。 然后调用 CalendarPad 方法,该方法有三个分别是 year, month, day 的整形参数。 该方法管理日历记事本的主界面。 在日历
18、牌部分使用网格布局,行数和列数均为 7。 其中第一行显示星期标题的标签,后续六行显示日期的标签。号码排列算法:该方法包含两个整形参数,分别是星期几和月天数。 该方 法的作用是将日期一次排列入日历牌的网格中,日期显示的字体字体均为 TimesRoman,并将星期六显示为蓝色,星期日显示为红色。 将当前日期显示为绿色,大小为 20,其它 日期为黑色,字体大小为 12。设置日历牌方法的算法:该方法有两个整形参数,分别是 year 和 month。该方法根据平、闰年以及每个月份的天数不同而以不同的方式将一个月中的每一天依次排入网格中。 当月份为 1、3、5、7、8、10 和 12 时,每月包括 31
19、天,当月份为 4、6、9、11 时,每月包括30 天,平年的 2 月为 28 天,闰年的 2 月为 29 天。记事本的算法描述如下:NotePad 类首先调用 NotePad 方法创建一个容器,在这一容器中使用了边界布局管理器。在该布局的北部是一个显示日期的信息条,该信息条显示的信息使用的字体是 TimesRoman,大小是 16 号。 该信息条显示的日期为用户所选定的日期。 在布局管理器的中部是一个 10*10 的文本区域。 该文本区域用来输入和显示日志的内容。 在布局管理器的南部放置了两个按钮分别表示“保存日志”和“删除日志”。 在用户使用鼠标点击这两个按钮时会调用 actionPerfo
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 日历 记事本
