1.2.2类图
Month-year-month-day+Month()+setMonth()+getMont()+actionPerformed()Year-year-month-day+Year()+setYear()+getYear()+actionPerformed()Calendarpad- year- month- day-file-calendarPad-showYear-showMonth-week+CalendarPad()+设置日历牌()+排列号码()+getYear()+setYear()+getMonth()+setMonth()+getDay()+setDay()+getHashtable()+mousePressed()+main()Notepad-text-file-delte-save-year-month-day+notepad()+actionPerforme()+setYear()+setMonth()+getMonth()+setDay()+设置信息条()+获取日志内容()+保存日志()+删除日志()2
2详细设计
2.1 CalendarPad类说明
该模块设计主要主要包含以下成员变量:
年(year) 月(month) 日(day)
存放日期的表(Hashtable) 存放日志的文件(File)
创建程序主面板的构造方法(CalendarPad)
处理ActionEvent事件的接口方法(actionPerformed) 程序开始运行的main()方法。
表1 日历记事本系统主面板与日历板模块(CalendarPad.java)
主要方法有:
类名 接口 CalendarPad MouseListener CalendarPad(int,int,int) public public public public void public void public static void 方法 设置日历牌(int,int) 排列号码(int,int) main() 2.2 Year类说明
该模块用于实现日历记事本系统中关于年的设置
模块中包含的主要成员变量有用于改变年的按钮(Jbutton 明年 去年),显示年的文本框(JTextField)
模块中包含的主要方法有用于设置年的方法(setYear),用于获取年的方法(getYear)和处理ActionEvent事件的接口方法(actionPerformed)等
3
表2 日历记事本系统年设置模块(Year.java)
类名 Year 接口 ActionListener setYear() 方法 getYear() actionPerformed(ActionEvent e) public public public void public int public void 2.3 Month 类模块
该模块用于实现日历记事本系统中关于月的设置
模块中包含的主要成员变量有用于改变月的按钮(Jbutton 上月 下月),显示月的文本框(JTextField)
模块中包含的主要方法有用于设置月的方法(setMonth),用于获取月的方法(getMonth)和处理ActionEvent事件的接口方法(actionPerformed)等
表3 日历记事本系统月设置模块(Month.java)
类名 Month 接口 ActionListener setMonth() 方法 getMonth() actionPerformed(ActionEvent e) public public public void public int public void 2.4 NotePad类说明
该模块中包含的主要成员变量有文本框(JTextArea),按钮(JButton 保存日志 删除日志),用于存放日志记录的文件(File)以及响应相关操作的信息提示(JLabel)
该模块中包含的主要方法有设置信息条,设置文本区,获取日志内容,保存日志,删除日志
4
表4 日历记事本系统记事本模块(NotePad.java)
类名 NotePad 接口 ActionListener 设置信息条() 设置文本区() 方法 获取日志内容() 保存日志() 删除日志() public public public void public void public void public void public void 5
3编码实现
源代码
import java.util.Calendar; import javax.swing.*; import java.awt.*;
import java.awt.event.*; import java.io.*;
import java.util.Hashtable; import java.util.*;
import javax.swing.event.*;
public class CalendarPad extends JFrame implements MouseListener { int year,month,day; //定义全局变量的三个属性 Hashtable hashtable; File file; //定义一个文件变量 JTextField showDay[]; //定义一个文本框组数 JLabel title[]; Calendar 日历; int 星期几; NotePad notepad=null; //定义一个NotePad对象,必须先给其处置null才能在下面使用 Month 负责改变月; Year 负责改变年; String 星期[]={\
//日历表的文字显示 JPanel leftPanel,rightPanel;
//定义左右两个面板,左边用来显示日历,右边用来显示记事本 public CalendarPad(int year,int month,int day) //主类的构造方法,实现了主界面 { leftPanel=new JPanel(); //创建左面板 JPanel leftCenter=new JPanel(); JPanel leftNorth=new JPanel(); leftCenter.setLayout(new GridLayout(7,7));
//设置面板布局格式,采用行列式,七行七列 rightPanel=new JPanel(); this.year=year; //设置year的值 this.month=month; this.day=day; 负责改变年=new Year(this);
//将当前对象的所有操作和属性赋值给year,使Year类的对象可以进行相应的操作 负责改变年.setYear(year); 负责改变月=new Month(this);
6