ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:251.83KB ,
资源ID:6480038      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6480038.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Java的日历记事本.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于Java的日历记事本.docx

1、基于Java的日历记事本摘 要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 系统流

3、程 6第4章 系统详细设计 84.1 程序变量和方法 8第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系统界面的左侧是日历。该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前

7、日历的年份减一;当鼠标左键单击“下年”按钮,当前日历的年份加一。2该日历也可以在某年内按月前后翻动。当鼠标左键单击“上月”按钮时,当前日历的月份减一;当鼠标左键单击“下月”按钮时,当前日历的月份加一。3使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。4用户选择具体日期后,可以将记事本的当前内容保存起来,形成日志。 2.2 主体功能用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。通过按按钮“上年”和“下年”对年份进行翻页。通过按按钮“上月”和“下月”对月份进行翻页。用户可以通过输入年份来查看自己的日志。显示信息:

8、用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。查询信息:用户可以查询到某个月的所有的提示信息。页面设计分为左右两个部分,左部分为日历的视图,上边放置了调节年份和月份的按钮,下边是日历的格式。右部分作为一个备忘录的文本域。当该日写有备忘时,会在文本域弹出提示有备忘是否查看。文本域的下边设有增加备忘和删除当前备忘的按钮。2.3 开发环境Windows XP;jdk1.5.0-0-05;ultraedit开发工具第3章 系统概要设计3.1 系统的功能模块

9、划分本日历记事本共有4个java源文件。CalendarPad.java:该java文件生成的类负责创建本日历记事本程序主窗口。该类含有main方法, 程序从该类开始执行。Year.java:该文件负责创建管理年份的对象。Month.java:该文件负责创建管理月份对象。NotePad.java:该文件负责创建记事本。 图3-1 类之间的关系3.2 系统流程1.系统实现 图3-2 系统功能结构2.系统实现流程CalendarPad作为主函数的入口。调用NotePad类的方法完善自己的窗口。当对窗口的年份和月份进行改变时就会触发Year类和Month类里的触发器和方法,从而达到日历备忘录的目的。

10、是 图3-3 系统流程实现第4章 系统详细设计4.1 程序变量和方法在设计日历记事本时,需要编写3个Java类:CalendarPad.java、Year.java、NotePad.java、month.java。日历记事本除了需要编写的上述3个Java所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。图形界面至少要有一个顶级Swing容器顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持;常用的顶级容器:Frame(框架):表示主程序窗口JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级

11、窗口JApplet(小程序):在浏览器内显示一个小程序界面一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格窗格也可以看作是一种面板,但它是框架的一个组成部分组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板public static void main(String args)JFrame frame=new JFrame(SwingApplication);JPanel panel1=new JPanel();frame.getContentPane().add(p

12、anel1,BorderLayout.CENTER);关键是java.awt.*里面的两个与显示设备有关的类:GraphicsEnvironment和GraphicsDevice。GraphicsEnvironment为Java应用程序提供了特定平台的 GraphicsDevice对象和 Font 对象集合。这些GraphicsDevice可以是各种本机和远端机器的资源,如屏幕、打印机或者是Image Buffer,甚至是Graphics2D绘图方法的目标对象。而GraphicsDevice就是指特定的图形环境了,如屏幕和打印设备等。这样,我们就可以用GraphicsDevice来操纵屏幕了。

13、GraphicsDevice提供的setFullScreenWindow()方法就是设置全屏幕用的。监听器actionlistion:方 法:actionPerformed事 件:ActionEvent String getActionCommand()actioncommand是控件内部的一个字符串,用于标识控件的状态。此函数可以取得控件的状态,从而决定到底该做什么。 int getModifiers()取得“产生此事件时,用户同时按下的组合键” long getWhen()取得“产生此事件时的时间戳”事件产生原因:点击按钮,在列表框中选择内容,在文本框中点回车,计时器到期。1.Calend

14、arPad类 表4-1主要成员变量(属性) 成员变量描述变量类型名称年、月、日intYear,month,day保存日志的散列表Hashtablehashtable存放散列表的文件Filefile显示日期JTextFieldshowDay日历对象Calendar日历记事本对象NotePadnotepad月Month负责改变月年Year负责改变年 表4-2 主要方法 名称功能备注CalendarPad创建程序主窗口构造方法设置日历牌设置日历的年份、月份排列号码排列月份中的号码mousePressed处理MouseEvent事件接口方法mian程序开始运行2.记事本NotePad 表4-3主要成员

15、变量(属性) 描述变量类型名称文本输入区JTextAreatext保存、删除日志的按钮Button保存日志、删除日志保存日志的散列表Hashtabletable保存散列表的文件Filefile记录日志的年、月、日intyear,month,day 表4-4 主要方法名称功能备注NotePad创建记事本对象构造方法setYear设置年份getYear获取年份setMonth设置月份getMonth获取月份setDay设置日期getDay获取日期获取日志内容获取日志内容保存日志保存日志删除日志删除日志actionPerformed处理ActionEvent事件接口方法3.年Year 表4-5主要成

16、员变量(属性)描述变量类型名称表示年份的整数(负数表示公元前)intyear显示年份的文本条JTextFieldshowYear负责增减年份的按钮JButton明年,去年 表4-6 主要方法名称功能备注Year创建“年”对象构造方法setYear设置年份getYear获取年份actionPerformed处理ActionEvent事件接口方法4.月Month 表4-7主要成员变量(属性)描述变量类型名称表示月份的整数(负数表示公元前)intmonth显示月份的文本条JTextFieldShowMonth负责增减月份的按钮JButton上月,下月 表4-8 主要方法名称功能备注 Month创建“

17、月”对象构造方法set Month 设置月份get Month 获取月份actionPerformed处理ActionEvent事件接口方法第5章 算法描述和编码实现5.1 类的算法主类的算法:CalendarPad 类首先创建用于布局的面板,左面添加日历牌,右面添加记事本。 然后调用 CalendarPad 方法,该方法有三个分别是 year, month, day 的整形参数。 该方法管理日历记事本的主界面。 在日历牌部分使用网格布局,行数和列数均为 7。 其中第一行显示星期标题的标签,后续六行显示日期的标签。号码排列算法:该方法包含两个整形参数,分别是星期几和月天数。 该方 法的作用是将

18、日期一次排列入日历牌的网格中,日期显示的字体字体均为 TimesRoman,并将星期六显示为蓝色,星期日显示为红色。 将当前日期显示为绿色,大小为 20,其它 日期为黑色,字体大小为 12。设置日历牌方法的算法:该方法有两个整形参数,分别是 year 和 month。该方法根据平、闰年以及每个月份的天数不同而以不同的方式将一个月中的每一天依次排入网格中。 当月份为 1、3、5、7、8、10 和 12 时,每月包括 31 天,当月份为 4、6、9、11 时,每月包括30 天,平年的 2 月为 28 天,闰年的 2 月为 29 天。记事本的算法描述如下:NotePad 类首先调用 NotePad

19、方法创建一个容器,在这一容器中使用了边界布局管理器。在该布局的北部是一个显示日期的信息条,该信息条显示的信息使用的字体是 TimesRoman,大小是 16 号。 该信息条显示的日期为用户所选定的日期。 在布局管理器的中部是一个 10*10 的文本区域。 该文本区域用来输入和显示日志的内容。 在布局管理器的南部放置了两个按钮分别表示“保存日志”和“删除日志”。 在用户使用鼠标点击这两个按钮时会调用 actionPerformed 方法,以执行保存日 志或删除日志的操作。执行保存日志的操作需要调用方法“保存日志”。 该方法的参数为三个整形变量,分别是:year, month, day。 当用户点

20、击保存日志按钮后,该方法首先弹出对话 框询问用户是否保 存日志,如果用户选择“是”,则该 方法将日志内 容添加到 所选日期的 散列表对象中,然后将其存为文本文件。执行删除日志的操作需要调用方法“删除日志”。 该方法的参数同样为三个分别为 year, month, day 的整形变量。 当用户点击删本栏目责任编辑:谢媛媛除日志按钮,该方法首先弹出对话框询问用户是否删除日志,如果用户选择“是”,则该 方法首先到文件中 读取散列表对象,然后删除该对象,以达到删除日志的目的。 如果该方法无法读取 散列表对象,即所选日期没有日志,则弹出对话框通知用户当日没有日志记录。 如果用户在选择了一个没有日志记录的

21、日期后点击“删除日志”按钮,系统会弹出对话框提示该日无日志记录。该类还有一个名为“获取日志内容”的方法。 该方法具有三个分别是 year, month, day 的整形参数。 当用户在日历牌中选定一个日期后该方法会判断该日期是否存在日志记录,若有则弹 出对话框询问用户是否要查看日志,如果用 户选择查看日志,该方法则从带有日期项的散列 表中获取日志内容并在文本区域显示出日志的内容。 如果 该日期没有日志记 录,则在 文本区域显示“无日志记录”。5.2 编码实现1.日历记事本系统主面板与日历板模块该模块设计主要主要包含以下成员变量:1)年(year)2)月(month)3)日(day)4)存放日期

22、的表(Hashtable)5)存放日志的文件(File)主要方法有:1)创建程序主面板的构造方法(CalendarPad)2)处理ActionEvent事件的接口方法(actionPerformed)3)程序开始运行的main()方法。表5-1 日历记事本系统主面板与日历板模块类名CalendarPadpublic接口MouseListenerpublic方法CalendarPad(int,int,int)设置日历牌(int,int)排列号码(int,int)main()publicpublic voidpublic voidpublic static void在具体设计过程中,首先,基本功能

23、和组件的创建;然后,创建构造方法,这一部分包括:为各个功能创建监听事件,创建程序主面板以及日历面板.添加关闭窗口方法;第三步分为创建监听方法,实现对各个功能模块的操作,以及鼠标点击实现进入相应的功能面板;最后创建相应的main()方法。2.日历记事本系统年设置模块 该模块用于实现日历记事本系统中关于年的设置。模块中包含的主要成员变量有用于改变年的按钮(Jbutton 明年 去年),显示年的文本框(JTextField)。模块中包含的主要方法有用于设置年的方法(setYear),用于获取年的方法(getYear)和处理ActionEvent事件的接口方法(actionPerformed)等。 表

24、5-2 日历记事本系统年设置模块类名Yearpublic接口ActionListenerpublic方法setYear()getYear()actionPerformed(ActionEvent e)public voidpublic intpublic void在具体设计过程中,首先,显示年的文本框、按钮、文件列表、区域的创建和初始化;然后创建构造方法,实现以上信息和组件的实体化,下一步实现接口监听,创建监听方法,通过以上方法可以实现年设置模块的基本功能实现。3.日历记事本系统月设置模块 该模块用于实现日历记事本系统中关于月的设置。模块中包含的主要成员变量有用于改变月的按钮(Jbutton

25、上月 下月),显示月的文本框(JTextField)。模块中包含的主要方法有用于设置月的方法(setMonth),用于获取月的方法(getMonth)和处理ActionEvent事件的接口方法(actionPerformed)等。 表3 日历记事本系统月设置模块类名Monthpublic接口ActionListenerpublic方法setMonth()getMonth()actionPerformed(ActionEvent e)public voidpublic intpublic void在具体设计过程中与年设置大体上相近,首先,显示年的文本框、按钮,文件列表、区域的创建和初始化;然后创

26、建构造方法,实现以上信息和组件的实体化,下一步实现接口监听,创建监听方法,通过以上方法可以实现年设置模块的基本功能实现。4.日历记事本系统记事本模块 该模块中包含的主要成员变量有文本框(JTextArea),按钮(JButton 保存日志 删除日志),用于存放日志记录的文件(File)以及响应相关操作的信息提示(JLabel)。该模块中包含的主要方法有设置信息条,设置文本区,获取日志内容,保存日志,删除日志。 表4 日历记事本系统记事本模块 类名NotePadpublic接口ActionListenerpublic方法设置信息条()设置文本区()获取日志内容()保存日志()删除日志()publ

27、ic voidpublic voidpublic voidpublic voidpublic void在具体设计过程中首先,将记事本模块中的文本框、按钮创建和初始化;然后创建构造方法,实现以上信息和组件的实体化,实现接口监听,创建监听方法,选择日期时若记事本系统中已经存在记录,则弹出提示,询问是否查看;若不存在记录,则可以保存日志;对存在的日志使用删除日志功能时会弹出提示是否删除日志,选是即删除日志,选否即可返回.以上即实现学生基本信息模块的基本功能实现。第6章 测试6.1 测试方案1打开主界面,鼠标左键右击,查看日历界面。2选定一个日期写日志。3对日历添加、删除日志。4修改年份,查看一些日志

28、。6.2 测试结果 1.年份改变点击一次“上年”按钮可增加一年,点击一次“下年”按钮可减少一年,多次连续点击即可依次改变多个年份。2.月份改变点击一次“上月”按钮可以增加一月,点击一次“下年”按钮可以减少一月,多次连续点击即可一次改变多个月份。3.日期显示用于显示当前所选择的所在的年份月份的所有日期、星期,并在记载有日志的日期直接跳出“这一天有日志记载,你想看吗?”,而没有记载日志的日期文本中则在文本框中“无记录”。4.日志显示界面的日期框中,可以选择某天记载的日志,并且读取的日志在此部分显示出来。5.保存、删除、读取日志。可以在没有记载日志的日期里记载日志并保存,可以对以保存的日志进行读取、

29、修改或者删除。(1)保存日志:(2)删除日志:(3)查看日志总结 经过几天的努力,基本上完成了我的软件课程设计。通过这次的课程设计,基本上将书本上的知识运用到实践上,从而进一步巩固和丰富所学知识,也让我更加深层次的认识了java及其功能的强大。为了更好地完成这次课程设计,我做了很多准备,上网查阅资料,到图书馆翻阅书籍。这个过程中也锻炼了我的思维分析、遇到问题及想法设法通过各种途径解决问题的能力。 在这个过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对JAVA语言整体知识构架不够熟悉,不能灵活地运用所学的知识点。自己的编程方式也不是太标准,经常出现代码写错而调试很

30、久的低级错误情况出现。从理论到实践,在整整几天的时间里,可以说,是苦大于甜,但确实学到很多东西,同时不仅巩固了以前的知识,而且学到了许多书上学不到的知识。通过这次课程设计使我懂得了理论与实践相结合是很重要的,只有理论知识是不够的,只有把所学的理论知识和实践结合起来,从理论中得出结论,才能真正服务社会,从而提高自己的实际动手能力和独立思考能力。通过这次课程设计,了解到了自己的不足之处,对以前的知识没有掌握到位,所以我们一定要学好理论知识,为以后的实践打下基础。 参考文献1耿祥义,张跃平 Java2实用教程(第三版)M . 北京:清华大学出版社, 2006 2耿祥义 Java课程设计(第三版)M . 北京:清华大学出版社, 20043张跃平 Java2实用教程实验

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1