1、该日历还可以在某年内按月前月后翻动,当鼠标左键单击“上月”按钮时,当前日历的月份将减一;当鼠标左键单击“下月” 当前日历表的月份将加一。同时图片为了增加美观而加入了日历图像选择功能。(2)系统界面的右侧是记事本和一个闹钟。用鼠标单击日历上的日期,就可以通过该记事本编辑有关日志,并将日志保存到一个文件,该文件的名字由该日期组成的字符序列命名。用户可以查看,删除某个日期的日志,可以继续向某个日志添加新内容,也可以随着自己的心情而改变字体的大小和样式。(3)当某个日期有日志时,在日历表该日期的外观上就会出现“有”标记,表明这个日期有日志,当用户删除某个日期的日志后,该日期的外观上“有”标记就会消失。
2、2 系统需求分析2.1 系统目标创建日历记事本,实现对某日期的事情进行记录这主要功能,并能显示设置的图片和字体,增加美观。2.2 主体功能(1)可以对个人日志进行添加、查阅、删除;(2)可以方便地在任何日期记载个人日志以及查看某个日期记载的日志;(3)可以显示当前日期与时间,并在整点报时。(5)可以为日历更改自己喜爱的图片。(6)可以改变字体的大小和样式2.3 开发环境Eclipse3 系统总体设计3.1 系统的功能模块划分本系统主要有以下几个功能模块:日历,记事本,时钟,图片等。该软件主要组成模块和各个模块之间的调用关系如图: 记事本模块图像模块时钟模块日历模块日期模块3.2 系统流程图4系
3、统详细设计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
4、类创建的用来显示日期的文本框。7)calendarImage是CalendarImage创建的对象,用来显示图像。8)clock是Clock创建的对象,用来显示时钟。9)nextYear,PreviousYear,nextMonth和PreviousMonth是JButton创建的按钮对象,名字依次为“下年、上年、下月、上月”。这些按钮都将当前窗口注册为自己的ActionEvent事件监视器。10)savaDailyRecord,deleteDailyRecord和readDailyRecord是JButton创建的按钮对象,名字依次为“保存日志、删除日志、读取日志”。 (2)方法1)Cale
5、ndarWindow()是构造方法,负责完成窗口初始化。2)actionPerformed(ActionEvent)方法是CalendarWindow类实现的ActionListener接口中的方法。CalendarWindow创建的窗口是nextYear,previousYear,nextMonth,previousMonth,saveDailyRecord,deleteDailyRecord和readDailyRecord按钮的ActionEvent事件监视器,当用户单击其中按钮时,窗口将执行actionPerformed(ActionEvent)方法进行相应的操作。3)mousePres
6、sed(MouseEvent)方法是CalendarWindow类实现的MouseListener接口中的方法。CalendarWindow创建的窗口时showDay数组中的JtextField文本框的MouseEvent事件监视器,当用户在某个显示日期的文本框上按下鼠标左键时,窗口将执行mousePress(MouseEvent)方法进行相应操作。4) focusGained(FocusEvent)和focusLost(FocusEvent)方法是CalendarWindow类实现的FocusListener接口中的方法。CalendarWindow创建窗口是showDay数组中的Jtext
7、Field文本框的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;
8、public class CalendarWindow extends JFrame implements ActionListener,MouseListener,FocusListener int year,month,day; CalendarMessage calendarMessage; CalendarPad calendarPad; NotePad notePad; JTextField showYear,showMonth; JTextField showDay; CalendarImage calendarImage; String picturename;/图像名称; St
9、ring getPicture_address; Clock clock; JButton nextYear,previousYear,nextMonth,previousMonth; JButton saveDailyRecord,deleteDailyRecord,readDailyRecord; File dir; Color backColor=Color.white; public CalendarWindow() dir= new File(./dailyRecord); dir.mkdir(); showDay = new JTextField42; for(int i=0;i1
10、2) month=1; showMonth.setText(+month); else if (e.getSource()=previousMonth) month-; if(month1) month=12; else if (e.getSource()=showYear) String s = showYear.getText().trim(); char a = s.toCharArray(); boolean boo = false; for(int i = 0;i a.length; if(!(Character.isDigit(ai) boo = true; if(boo=true
11、) JOptionPane.showMessageDialog(this,你输入了非法年份,警告!, JOptionPane.WARNING_MESSAGE); else if(boo=false) year = Integer.parseInt(s); else if (e.getSource()= saveDailyRecord) notePad.savefile(dir,year,month,day); else if(e.getSource()=deleteDailyRecord) notePad.deletefile(dir,year,month,day); else if (e.getSource()=readDailyRecord) notePad.readfile(dir,year,month,day); public void mousePressed(MouseEvent e) JTextField text = (JTextField)e.getSource(); String str = text.getText().trim(); day = Integer.parseInt(s
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1