欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年JAVA课程设计报告_电子钟日历记事本.docx

    • 资源ID:12790014       资源大小:290.46KB        全文页数:59页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年JAVA课程设计报告_电子钟日历记事本.docx

    精品学习资源课程设计报告 2021- 2021 年度第 2 学期 日历记事本专学班生姓业名级运算机科学与技术董文龙 运算机 116学号1110704603指导教师徐秀芳完成日期2021.7欢迎下载精品学习资源目 录欢迎下载精品学习资源目 录11 概 述31.1 课程设计目地31.2 课程设计内容和要求32 系统需求分析42.1 系统目标42.2 主体功能42.3 开发环境43 系统总体设计43.1 系统地功能模块划分43.2 系统流程图54 系统详细设计54.1 主窗口模块设计54.1.1 成效图54.1.2 类地主要成员变量和方法64.1.3 主要程序代码74.2 日期模块设计184.2.1 成效图184.2.2 类地主要成员变量和方法184.2.3 主要程序代码184.3 日历模块设计204.3.1 成效图204.3.2 类地主要成员变量和方法204.3.3 主要程序代码214.4 记事本模块设计234.4.1 成效图234.4.2 类地主要成员变量和方法234.4.3 主要程序代码244.5 图像模块设计334.5.1 成效图334.5.2 类地主要成员变量和方法334.5.3 主要程序代码334.6 时钟模块设计354.6.1 成效图354.6.2 类地主要成员变量和方法354.6.3 主要程序代码365 代码调试406 软件发布407 小结41参考文献42欢迎下载精品学习资源日历记事本欢迎下载精品学习资源1 概 述1.1 课程设计目地( 1)加深对 Java 语言与面对对象技术课程基础学问地懂得,把握Java 语言面对对象程序设计地开发方法和步骤;( 2)进一步懂得面对对象程序设计地思想和方法,利用Java 语言进行程序设计地才能;( 3)课程设计将课本上地理论学问和实际应用相结合,锤炼同学发觉问题、分析问题和解决问题地才能 .加强同学研发、编写、调试程序地才能;( 4)培养同学在工程开发中团队合作精神、创新意识及才能;( 5)提高同学科技论文写作才能,规范完成课程设计报告.1.2 课程设计内容和要求设计 GUI界面地日历记事本,系统将日历和记事本结合在一起,可以便利地储存、查看日志,即在任何日期记载下有关内容或查看某个日期记载地内容.详细要求如下:(1 )界面地左侧是日历和一幅图像.该日历可以按年前后翻动,用鼠标鼠标单击“上年 ”按钮时,当前日历地年份将减一;当鼠标左键单击“下年 ”按钮,当前日历地年份将加一.该日历仍可以在某年 内按月前月后翻动,当鼠标左键单击“上月 ”按钮时 ,当前日历地月份将减一;当鼠标左键单击“下月 ” 当前日历表地月份将加一.同时图片为了增加美观而加入了日历图像选择功能.( 2)系统界面地右侧是记事本和一个闹钟.用鼠标单击日历上地日期,就可以通过该记事本编 辑有关日志,并将日志储存到一个文件,该文件地名字由该日期组成地字符序列命名.用户可以查看,删除某个日期地日志,可以连续向某个日志添加新内容,也可以随着自己地心情而转变字体地大小和样式 .( 3)当某个日期有日志时,在日历表该日期地外观上就会显现“有”标记,说明这个日期有日志,当用户删除某个日期地日志后,该日期地外观上“有”标记就会消逝 .欢迎下载精品学习资源2 系统需求分析2.1 系统目标创建日历记事本,实现对某日期地事情进行记录这主要功能,并能显示设置地图片和字体,增加美观.2.2 主体功能(1) 可以对个人日志进行添加、查阅、删除;(2) 可以便利地在任何日期记载个人日志以及查看某个日期记载地日志;(3) 可以显示当前日期与时间,并在整点报时.(5) 可以为日历更换自己宠爱地图片.(6) 可以转变字体地大小和样式2.3 开发环境Eclipse3 系统总体设计3.1 系统地功能模块划分本系统主要有以下几个功能模块:日历,记事本,时钟,图片等.该软件主要组成模块和各个模块之间地调用关系如图:日历记事本日历记事本主窗口欢迎下载精品学习资源日期模块日历模块记事本模块时钟模块图像模块3.2 系统流程图CalendarWindowCalendarMessageCalendarImageCalendarPadNotePadFileClockJTextFieldJTextArea4 系统详细设计4.1 主窗口模块设计4.1.1 成效图欢迎下载精品学习资源4.1.2 类地主要成员变量和方法( 1)成员变量1) year,month 和 day 是 int 型变量 .它们地值分别确定年份、月份和日期. 2) calendarMessage是 CalnedarMessage对象,该对象用来处理与日期有关地数据. 3) calendarPad是 CalendarPad 对象,该对象可以显示与日期有关地数据.4) notePad是 NoetPad 地对象 .具有编辑、读取、储存和删除日志地功能. 5) showYear 和 showMonth 是 JtextField 类创建地文本框,用来显示年月. 6) showDay 数组地每个单元是JtextField 类创建地用来显示日期地文本框. 7) calendarImage 是 CalendarImage 创建地对象,用来显示图像.8) clock 是 Clock 创建地对象,用来显示时钟.9) nextYear,PreviousYear,nextMonth和 PreviousMonth 是 JButton 创建地按钮对象,名字依次为“下年、上年、下月、上月”这.些按钮都将当前窗口注册为自己地ActionEvent 大事监视器 .10) savaDailyRecord, deleteDailyRecord 和 readDailyRecord 是 JButton 创建地按钮对象,名字依次 为“储存日志、删除日志、读取日志”这.些按钮都将当前窗口注册为自己地ActionEvent 大事监视器 .( 2)方法1) CalendarWindow ()是构造方法,负责完成窗口初始化.欢迎下载精品学习资源2) ) actionPerformed ( ActionEvent )方法是CalendarWindow类实现地ActionListener接口中地方法 .CalendarWindow创 建 地 窗 口 是nextYear , previousYear , nextMonth , previousMonth, saveDailyRecord , deleteDailyRecord和 readDailyRecord 按钮地 ActionEvent大事监视器,当用户单击其中按钮时,窗口将执行actionPerformed ( ActionEvent )方法进行相应地操作.3) mousePressed( MouseEvent ) 方 法 是 CalendarWindow类 实 现 地 MouseListener接 口 中 地 方法.CalendarWindow 创建地窗口时 showDay 数组中地 JtextField 文本框地 MouseEvent 大事监视器, 当用户在某个显示日期地文本框上按下鼠标左键时,窗口将执行mousePress( MouseEvent )方法进行相应操作 .4) focusGained ( FocusEvent ) 和 focusLost ( FocusEvent ) 方 法 是 CalendarWindow类 实 现 地FocusListener 接口中地方法 .CalendarWindow创建窗口是showDay 数组中地JtextField 文本框地FocusEvent 大事监视器,当用户地操作导致某个显示日期地文本框地焦点发生变化时,窗口将执行focusGained(FocusEvent)或 focusLost ( FocusEvent)方法进行相应地操作.5) doMark ()方法负责对有日志地日期作出标志.6) main 方法是程序运行地入口方法3.4.1.3 主要程序代码import javax.swing.* ;import java.awt.* ;import java.awt.event.* ;import java.util.* ;import java.io.* ;import java.awt.SplashScreen ;public class CalendarWindow extends JFrame implements ActionListener, MouseListener,FocusListenerint year,month,day ;CalendarMessage calendarMessage;欢迎下载精品学习资源CalendarPad calendarPad;NotePad notePad;JTextField showYear,showMonth ;JTextField showDay ;CalendarImage calendarImage;String picturename ;/图像名称; String getPicture_address;Clock clock ;JButton nextYear,previousYear,nextMonth,previousMonth;JButton saveDailyRecord,deleteDailyRecord,readDailyRecord;File dir ;Color backColor=Color.white;public CalendarWindowdir= new File"./dailyRecord";dir.mkdir ;showDay = new JTextField42 ;forint i=0 ;i<showDay.length ; i+showDayi=new JTextField;showDayi.setBackgroundbackColor;showDayi.setLayoutnew GridLayout3,3;showDayi.addMouseListenerthis;showDayi.addFocusListenerthis ;calendarMessage = new CalendarMessage;calendarPad = new CalendarPad;notePad = new NotePad;Calendar calendar = Calendar.getInstance;calendar.setTimenew Date ;欢迎下载精品学习资源year = calendar.getCalendar.YEAR ;month = calendar.getCalendar.MONTH+1 ;day = calendar.getCalendar.DAY_OF_MONTH;calendarMessage.setYearyear;calendarMessage.setMonthmonth ;calendarMessage.setDayday;calendarPad.setCalendarMessagecalendarMessage;calendarPad.setShowDayTextFieldshowDay ;notePad.setMessageyear,month,day;calendarPad.showMonthCalendar ;doMark ;calendarImage = new CalendarImage ;picturename=getPicture_address ;/ calendarImage.setImageFilenew Filepicturename ;JMenuBar menuBar = new JMenuBar ;JMenu menusetting = new JMenu ;JMenuItem changepicture=new JMenuItem ;menusetting.setText" 图像 ";/设置标题changepicture.setText" 更换图片背景 ";/ 设置标题/添加菜单条上去; menusetting.addchangepicture ;menuBar.addmenusetting ;setJMenuBarmenuBar ;/注册监听器changepicture.addActionListenerthis ;clock = new Clock ;JSplitPanesplitV1=new JSplitPaneJSplitPane.VERTICAL_SPLIT,calendarPad,calendarImage;JSplitPane splitV2 = new JSplitPaneJSplitPane.VERTICAL_SPLIT,notePad,clock;JSplitPane splitH = new JSplitPaneJSplitPane.HORIZONTAL_SPLIT,splitV1,splitV2;欢迎下载精品学习资源addsplitH,BorderLayout.CENTER;showYear = new JTextField""+year,6 ;showYear.setFontnew Font"TimesRoman",Font.BOLD,12;showYear.setHorizontalAlignmentJTextField.CENTER;showMonth = new JTextField""+month,4;showMonth.setFontnew Font"TimesRoman",Font.BOLD,12;showMonth.setHorizontalAlignmentJTextField.CENTER;nextYear = new JButton" 下年" ;previousYear = new JButton" 上年" ;nextMonth = new JButton" 下月" ;previousMonth = new JButton"上月" ;nextYear.addActionListenerthis ;previousYear.addActionListenerthis ;nextMonth.addActionListenerthis;previousMonth.addActionListenerthis;showYear.addActionListenerthis ;JPanel north = new JPanel;north.addpreviousYear ;north.addshowYear ;north.addnextYear ;north.addpreviousMonth ;north.addshowMonth ;north.addnextMonth ;addnorth,BorderLayout.NORTH;saveDailyRecord = new JButton" 储存日志 " ;deleteDailyRecord = new JButton" 删除日志 ";readDailyRecord = new JButton" 读取日志 " ;saveDailyRecord.addActionListenerthis;deleteDailyRecord.addActionListenerthis;readDailyRecord.addActionListenerthis;欢迎下载精品学习资源JPanel pSouth = new JPanel;pSouth.addsaveDailyRecord ;pSouth.adddeleteDailyRecord ;pSouth.addreadDailyRecord ;addpSouth,BorderLayout.SOUTH;setVisibletrue ;setBounds70,70,770,500 ;validate ;setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;public String getPicture_addressString address=null ;tryFileInputStreamoutOne=new FileInputStream"picture_address.txt";ObjectInputStream outTwo=new ObjectInputStreamoutOne;tryaddress=StringoutTwo.readObject;catchException ex outTwo.close ;catchIOException eeeifaddress.=nullreturn address;else欢迎下载精品学习资源return "picture.jpg" ;public void actionPerformedActionEvent eife.getActionCommand.equals"更换图片背景 "FileDialog dia=new FileDialogthis,"选定图片 ",FileDialog.LOAD;/新建一个文件选择对话框,用dia 获得选择得到地信息;dia.setModaltrue ;/设置为模态对话框; dia.setVisibletrue ;/ 将取得地内容存入“ picture_address.txt文件中,”下次打开软件时仍能记住上次地图片路径地选择;ifdia.getDirectory.=null&&dia.getFile.=null/假如得到地路径和文件名不为空;tryFileOutputStreaminOne=new FileOutputStream"picture_address.txt";ObjectOutputStream inTwo=new ObjectOutputStreaminOne;inTwo.writeObjectdia.getDirectory+dia.getFile;inTwo.close ;catchIOException eepicturename=getPicture_address ;/从文件中读出显示图片地路径地址;欢迎下载精品学习资源calendarImage.setImageFilenewFilepicturename ;/ 将获得路径传给图片,显示该路径指定地图片ife.getSource=nextYearyear+;showYear.setText""+year ;calendarMessage.setYearyear;calendarPad.setCalendarMessagecalendarMessage;calendarPad.showMonthCalendar ;notePad.setMessageyear,month,day;doMark ;else if e.getSource=previousYearyear-;showYear.setText""+year ;calendarMessage.setYearyear;calendarPad.setCalendarMessagecalendarMessage;calendarPad.showMonthCalendar ;notePad.setMessageyear,month,day;doMark ;else if e.getSource=nextMonthmonth+ ;ifmonth>12 month=1 ;showMonth.setText""+month ;calendarPad.setCalendarMessagecalendarMessage;欢迎下载精品学习资源calendarPad.showMonthCalendar ;notePad.setMessageyear,month,day;doMark ;else if e.getSource=previousMonthmonth- ;ifmonth<1 month=12 ;showMonth.setText""+month ;calendarPad.setCalendarMessagecalendarMessage;calendarPad.showMonthCalendar ;notePad.setMessageyear,month,day;doMark ;else if e.getSource=showYearString s = showYear.getText.trim ;char a = s.toCharArray ;boolean boo = false;forint i = 0 ;i < a.length ;i+if.Character.isDigitaiboo = true ;ifboo=trueJOptionPane.showMessageDialogthis," 你输入了非法年份 "," 警告! ",JOptionPane.WARNING_MESSAGE;else ifboo=falseyear = Integer.parseInts ;showYear.setText""+year ;欢迎下载精品学习资源calendarMessage.setYearyear;calendarPad.setCalendarMessagecalendarMessage;calendarPad.showMonthCalendar ;notePad.setMessageyear,month,day;doMark ;else if e.getSource= saveDailyRecordnotePad.savefiledir,year,month,day ;doMark ;else ife.getSource=deleteDailyRecordnotePad.deletefiledir,year,month,day ;doMark ;else if e.getSource=readDailyRecordnotePad.readfiledir,year,month,day ;doMark ;public void mousePressedMouseEvent eJTextField text = JTextFielde.getSource ;String str = text.getText.trim ;tryday = Integer.parseIntstr ;欢迎下载精品学习资源catch NumberFormatException expcalendarMessage.setDayday;notePad.setMessageyear,month,day;public void mouseReleasedMouseEvent e public void mouseEnteredMouseEvent e public void mouseExitedMouseEvent e public void mouseClickedMouseEvent e public void focusGainedFocusEvent eComponent com = Componente.getSource ;com.setBackgroundColor.pink ;public void focusLostFocusEvent eComponent com = Componente.getSource ;com.setBackgroundbackColor ;public void doMarkforint i=0 ;i<showDay.length ; i+showDayi.removeAll;String str = showDayi.getText.trim;tryint n = Integer.parseIntstr ;ifisHaveDailyRecordn=true欢迎下载精品学习资源JLabel mess = new JLabel"yes" ;mess.setFontnew Font"TimesRoman",Font.PLAIN,11;mess.setForegroundColor.blue ;showDayi.addmess ;catch Exception expcalendarPad.repaint;calendarPad.validate;public boolean isHaveDailyRecordint nString key = ""+year+""+month+""+n;String dayFile = dir.list;boolean boo = false;forint k = 0 ;k<dayFile.length ;k+ifdayFilek.equalskey+".txt"boo = true ;break;return boo ;public static void mainString args欢迎下载精品学习资源new CalendarWindow ;4.2 日期模块设计4.2.1 成效图4.2.2 类地主要成员变量和方法( 1)成员变量year, month, day 是 int 型数据,它们地值分别确定年份、月份和日期.( 2) 方法1) setYear(int )和 getYear()方法分别用来设置year 和猎取 year 地值.2) setMonth (int )和 getMonth ()方法分别用来设置month 和猎取 month 地值 .3) setDay(int )和 getDay()方法分别用来设置和猎取day 地值.4) getMonthCalendar ()方法是用来处理日期数据,使其按着习惯来显示.即日历牌中每行地第一列 为“星期天 ”.getMonthCalendar()方法依据year, month 和 day 地值返回一个存放着 “日历 ”数据地String 类型地数组,例如,假如某月有30 天,而且该月地第一天是星期三,那么返回地String 类型地数组是: “”, “,”“”, “1”, “2,”···, “30”.4.2.3 主要程序代码import java.util.Calendar ;public class CalendarMessageint year=-1,month=-1,day=-1 ;public void setYearint yearthis.year=year ;欢迎下载精品学习资源public int getYearreturn year;public void setMonthint month ifmonth<=12&&month>=1this.month=month ;elsethis.month=1 ;public int getMonthreturn month ;public void setDayint daythis.day=day ;public int getdayreturn day ;public String getMonthCalendar String day=new String42;Calendar rili=Calendar.getInstance ;rili.setyear,month-1,1 ;/将日历翻到 year 年 month 月 1 日int 星期几 =rili.getCalendar.DAY_OF_WEEK-1;int dayAmount=0 ;ifmonth=1|month=3|month=5|month=7|month=8|month=10|month=12 dayAmount=31 ;ifmonth=4|month=6|month=9|month=11dayAmount=30 ;欢迎下载精品学习资源ifmonth=2ifyear%4=0&&year%100.=0|year%400=0 dayAmount=29 ;elsedayAmount=28 ;forint i=0 ;i< 星期几; i+ dayi=" " ;forint i= 星期几 ,n=1;i< 星期几 +dayAmount ; i+ dayi=String.valueOfn;n+ ;for int i= 星期几 +dayAmount ;i<42 ;i+ dayi=" " ;return day ;4.3 日历模块设计4.3.1 成效图4.3.2 类地主要成员变量和方法欢迎下载精品学习资源( 1) 成员变量1) year, month 和 day 是 int 型数据,它们地值分别确定年份、月份和日期2) calendarMessage 是 CalendarMessage 对象,该对象可以处理和日期有关地数据.3) showDay 数组地每个单元是JtextField 类创建地用来显示日期地文本框.4) “星期 ”是 String 数组,单元地值依次为“ SUN日”、“ MON 一”、“ TUE二”、“ WED三”、“ THU四”、“FRI五”、“SAT六”.( 2) 方法1) CalendarPad()是构造方法,用来创建calendarPad 对象.2) setShowDayTextField ( JtextField )方法负责设置 showDay 数组 .3) setCalendarMessage(CalendarMessage)方法负责设置calendarMessage对象 .4) showMonthCalendar ()方法负责显示“日历 ” 4.4.3.3 主要程序代码 import javax.swing.* ;import java.awt.* ;impor

    注意事项

    本文(2022年JAVA课程设计报告_电子钟日历记事本.docx)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开