搜档网
当前位置:搜档网 › 用Java实现日历记事本

用Java实现日历记事本

用Java实现日历记事本
用Java实现日历记事本

用Java实现日历记事本

信息与计算科学专业课程设计

用Java实现日历记事本

3. 实验内容

编程实现日历记事本。具体要求如下:

(1)该日历可以通过在文本框中输入年份和月份设置日期,也可按年前后翻动,用鼠标左键单击“上年”和“下年”按钮,将当前日历的年份减一和加一。还可以在某年内按月前后翻动,用鼠标左键单击“上月”和“下月”按钮,将日历的月份减一和加一。

(2)左键单击日历上的日期,可以通过右侧的记事本(文本区)编辑有关日志,并将日志保存到一个文件,该文件的名字是由当前日期组成的字符序列。用户可以读取、删除某个日期的日志,也可以继续向某个日志添加新的内容。在保存、删除和读取日志时都会先弹出一个确认对话框,以确认保存、删除和读取操作。

(3)当某个日期有日志时,该日期以粗体16号字显示,表明这个日期有日志;当用户删除某个日期的日志后,该日期恢复原来的外观。

实现效果图(参考)如下:

提示:(1)组件调用public void setFont(Font f)方法可以设置组件上的字体,Font类的构造方法为:public Font(String name,int style,int size),其中name 是字体的名字,style决定字体的样式(如Font.BOLD 表示粗体)size决定字体的大小。(具体请参考JDK API)

(2)当左键单击日历上的日期时,如要获取该日期,可通过处理该组件上的鼠标事件来实现。

4.实验步骤、实施过程、关键代码、实验结果及分析说明等

1.CalendarPad类

(1) 进行整体布局,建立日历记事本文件,设置日历卡,把日期按星期顺序排列,并用窗口监视器实现。

(2)用窗口监视器实现,结果如下:

2.Notepad类

(1)对日期的设置和获取,设置信息条,对文本框进行设置,保存日志、删除日志和读取日志按钮的事件实现。

(2)保存日志按钮事件实现如下:

(3)读取日志按钮事件实现如下:

(4.)删除日志按钮事件实现如下:

3Year类

(1)输入年份可以实现输出,给上下年按钮设置监视器,对上下年按钮事件的实现。

(2)其结果如下:

4. Month类

(1)设置上下月监视器,对上下月按钮的事件实现,区分闰年和平年,对天数不同的月份进行分类。(2)其结果如下:

(续上页,可加页)

5各个类的源代码如下:

CalendarPad 类:

//CalendarPad.java

import java.util.Calendar;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.util.Hashtable;

public class CalendarPad extends JFrame implements MouseListener,ActionListener {

int year,month,day;

Hashtable hashtable;

JButton Save,Delete,Read;

File file;

JTextField showDay[];

JLabel title[];

Calendar Date;

int Weekday;

NotePad notepad=null;

Month ChangeMonth;

Year ChangeYear ;

String week[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

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;

this.month=month;

this.day=day;

ChangeYear=new Year(this);

ChangeYear.setYear(year);

ChangeMonth=new Month(this);

ChangeMonth.setMonth(month);

title=new JLabel[7];

showDay=new JTextField[42];

for(int j=0;j<7;j++) {

title[j]=new JLabel();

title[j].setText(week[j]);

title[j].setBorder(BorderFactory.createRaisedBevelBorder()); title[j].setForeground(Color.blue);

leftCenter.add(title[j]);

}

for(int i=0;i<42;i++) {

showDay[i]=new JTextField();

showDay[i].addMouseListener(this);

showDay[i].setEditable(false);

leftCenter.add(showDay[i]);

}

Save=new JButton("保存日志") ;

Delete=new JButton("删除日志") ;

Read=new JButton("读取日志") ;

Read.addActionListener(this);

Save.addActionListener(this);

Delete.addActionListener(this); //设置监视器

JPanel pSouth=new JPanel();

pSouth.add(Save);

pSouth.add(Delete);

pSouth.add(Read);

Date=Calendar.getInstance();

Box box=Box.createHorizontalBox();

box.add(ChangeYear);

box.add(ChangeMonth);

leftNorth.add(box);

leftPanel.setLayout(new BorderLayout());

add(leftNorth,BorderLayout.NORTH);

leftPanel.add(leftCenter,BorderLayout.CENTER);

add(pSouth,BorderLayout.SOUTH);

leftPanel.validate();

notepad=new NotePad(this); rightPanel.add(notepad);

Container con=getContentPane();

JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,

leftPanel,rightPanel);

con.add(split,BorderLayout.CENTER); //进行整体布局 con.validate();

hashtable=new Hashtable();

file=new File("日历记事本.txt");

if(!file.exists()){

try{

FileOutputStream out=new FileOutputStream(file);

ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(hashtable);

objectOut.close();

out.close();

}

catch(IOException e){}

}

setCalendar(year,month);

addWindowListener(new WindowAdapter() { //设置窗口监视器public void windowClosing(WindowEvent e) {

System.exit(0);

}

} );

setVisible(true);

setBounds(100,60,524,335);

validate();

}

public void actionPerformed(ActionEvent e) {

if(e.getSource()==Save) {

notepad.Save(file,year,month,day);

}

else if(e.getSource()==Delete) {

notepad.Delete(file,year,month,day);

}

else if(e.getSource()==Read) {

notepad.Read(file,year,month,day);

}

}

public void setCalendar(int year,int month) { //设置日历卡

Date.set(year,month-1,1);

Weekday=Date.get(Calendar.DAY_OF_WEEK)-1;

if(month==1||month==2||month==3||month==5||month==7

||month==8||month==10||month==12) {

Arrange(Weekday,31);

}

else if(month==4||month==6||month==9||month==11) {

Arrange(Weekday,30);

}

else if(month==2) {

if((year%4==0&&year%100!=0)||(year%400==0)) {

Arrange(Weekday,29);

}

else {

Arrange(Weekday,28);

}

}

}

public void Arrange(int Weekday,int Monthday) { //把日期,按星期排列 for(int i=Weekday,n=1;i

showDay[i].setText(""+n);

if(n==day) {

showDay[i].setForeground(Color.blue);

showDay[i].setFont(new

Font("TimesRoman",Font.BOLD,20));

}

else {

showDay[i].setFont(new

Font("TimesRoman",Font.BOLD,12));

showDay[i].setForeground(Color.black);

}

n++;

}

for(int i=0;i

showDay[i].setText("");

}

for(int i=Weekday+Monthday;i<42;i++) {

showDay[i].setText("");

}

}

public int getYear() {

return year;

}

public void setYear(int y) {

year=y;

notepad.setYear(year);

}

public int getMonth() {

return month;

}

public void setMonth(int m) {

month=m;

notepad.setMonth(month);

}

public int getDay() {

return day;

}

public void setDay(int d) {

day=d;

notepad.setDay(day);

}

public Hashtable getHashtable() {

return hashtable;

}

public File getFile() {

return file;

}

public void mousePressed(MouseEvent e) {

JTextField source=(JTextField)e.getSource(); try {

day=Integer.parseInt(source.getText()); notepad.setDay(day);

notepad.setNews(year,month,day);

notepad.setText(null);

}

catch(Exception ee) {}

}

public void mouseClicked(MouseEvent e){}

public void mouseReleased(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public static void main(String args[]) {

Calendar calendar=Calendar.getInstance();

int y=calendar.get(Calendar.YEAR);

int m=calendar.get(Calendar.MONTH)+1;

int d=calendar.get(Calendar.DAY_OF_MONTH);

new CalendarPad(y,m,d);

}

}

NotePad类

// NotePad.java

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

import javax.swing.event.*;

import java.io.*;

public class NotePad extends JPanel implements ActionListener {

JTextArea text;

Hashtable table;

JLabel News;

int year,month,day;

File file;

CalendarPad calendar;

public NotePad(CalendarPad calendar) {

this.calendar=calendar;

year=calendar.getYear();

month=calendar.getMonth();

day=calendar.getDay();

table=calendar.getHashtable();

file=calendar.getFile();

News=new JLabel(""+year+"年"+month+"月"+day+"日",JLabel.CENTER); News.setFont(new Font("TimesRoman",Font.BOLD,20));

text=new JTextArea(10,15);

setLayout(new BorderLayout());

JPanel pSouth=new JPanel();

add(News,BorderLayout.NORTH);

add(pSouth,BorderLayout.SOUTH);

add(new JScrollPane(text),BorderLayout.CENTER);

}

public void setYear(int year) {

this.year=year;

}

public int getYear() {

return year;

}

public void setMonth(int month) {

this.month=month;

}

public int getMonth() {

return month;

}

public void setDay(int day) {

this.day=day;

}

public int getDay() {

return day;

}

public void setNews(int year,int month,int day) {

News.setText(""+year+"年"+month+"月"+day+"日");

}

public void setText(String s) {

text.setText(s);

}

public void actionPerformed(ActionEvent e) {}

public void Save(File file,int year,int month,int day) { //保存日志按钮事件实现

String LogCenter=text.getText();

String key=""+year+""+month+""+day;

try {

FileInputStream inOne=new FileInputStream(file);

ObjectInputStream inTwo=new ObjectInputStream(inOne);

table=(Hashtable)inTwo.readObject();

inOne.close();

inTwo.close();

}

catch(Exception ee){}

if(table.containsKey(key)) {

String m=""+year+"年"+month+"月"+day+"已存在日志,是否更新?"; //是更新已有的日志

int ok=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE);

if(ok==JOptionPane.YES_OPTION) {

try {

FileInputStream inOne=new FileInputStream(file);

ObjectInputStream inTwo=new ObjectInputStream(inOne);

table=(Hashtable)inTwo.readObject();

inOne.close();

inTwo.close();

table.remove(key); FileOutputStream out=new FileOutputStream(file);

ObjectOutputStream objectOut=new ObjectOutputStream(out);

objectOut.writeObject(table);

objectOut.close();

out.close();

text.setText(null);

}

catch(Exception ee){}

String f="日志已更新";

JOptionPane.showMessageDialog(this,f,"提示",JOptionPane.WARNING_MESSAGE);

}

}

else {

String m=""+year+"年"+month+"月"+day+"还没有日志,是否保存日志?"; //保存还没有的日志

int ok=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE);

if(ok==JOptionPane.YES_OPTION) {

try {

FileInputStream inOne=new FileInputStream(file);

ObjectInputStream inTwo=new ObjectInputStream(inOne);

table=(Hashtable)inTwo.readObject();

inOne.close();

inTwo.close();

table.put(key,LogCenter);

FileOutputStream out=new FileOutputStream(file);

ObjectOutputStream objectOut=new ObjectOutputStream(out);

objectOut.writeObject(table);

objectOut.close();

out.close();

}

catch(Exception ee){}

String f="日志保存成功";

JOptionPane.showMessageDialog(this,f,"提示",JOptionPane.WARNING_MESSAGE);

}

}

}

public void Delete(File file,int year,int month,int day) { //删除日志按钮事件实现

String key=""+year+""+month+""+day;

if(table.containsKey(key)) {

String m="删除"+year+"年"+month+"月"+day+"日的日志吗?";

int yes=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE);

if(yes==JOptionPane.YES_OPTION) {

try {

FileInputStream inOne=new FileInputStream(file);

ObjectInputStream inTwo=new ObjectInputStream(inOne);

table=(Hashtable)inTwo.readObject();

inOne.close();

inTwo.close();

table.remove(key); FileOutputStream out=new FileOutputStream(file);

ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(table);

objectOut.close();

out.close();

text.setText(null);

}

catch(Exception ee){}

String f="日志删除成功";

JOptionPane.showMessageDialog(this,f,"提示",JOptionPane.WARNING_MESSAGE);

}

}

else {

String f=""+year+"年"+month+"月"+day+" 无记录";

日历记事本2020

2020年1月 星期一星期二星期三星期四星期五星期六星期日 1元旦2腊八节3初九4初十5十一 6小寒7十三8十四9十五10十六11十七12十八 13十九14二十15廿一16廿二17小年18廿四19廿五 20大寒21廿七22廿八23廿九24除夕25春节26初二 27初三28初四29初五30初六31初七

2020年2月 星期一星期二星期三星期四星期五星期六星期日 1初八2湿地日 3初十4立春5十二6十三7十四8元宵节9十六 10十七11十八12十九13二十14情人节15廿二16廿三 17廿四18廿五19雨水20廿七21廿八22廿九23初一 24龙头节25初三26初四27初五28初六29初七

2020年3月 星期一星期二星期三星期四星期五星期六星期日30初七31初八1初八 2初九3初十4十一5惊蛰6十三7十四8妇女节 9十六10十七11十八12植树节13二十14廿一15消费者... 16廿三17廿四18廿五19廿六20春分21廿八22廿九 23三十24初一25初二26初三27初四28初五29初六

2020年4月 星期一星期二星期三星期四星期五星期六星期日 1愚人节2初十3十一4清明5十三 6十四7十五8十六9十七10十八11十九12二十 13廿一14廿二15廿三16廿四17廿五18廿六19谷雨 20廿八21廿九22地球日23初一24初二25初三26初四 27初五28初六29初七30初八

2020年5月 星期一星期二星期三星期四星期五星期六星期日 1劳动节2初十3十一 4五四青...5立夏6十四7十五8十六9十七10母亲节 11十九12护士节13廿一14廿二15廿三16廿四17廿五 18博物馆日19廿七20小满21廿九22三十23初一24初二 25初三26初四27初五28初六29初七30初八31初九

电子日历记事本--Java课程设计

《面向对象程序设计》课程设计报告 题目:电子日历记事本的设计 院(系):信息科学与工程学院 专业班级:计算机科学与技术1201班 学生姓名:程伟 学号: 20121183011 指导教师:吴奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日 华中科技大学武昌分校制 面向对象程序设计课程设计任务书

目录 1需求与总体设计 1 1.1需求分析 1 1.2总体设计思路 1 1.2.1功能图 1 1.2.2类图 2 2详细设计 (3) 2.1 CalendarPad类说明 3 2.2 Year类说明 3 2.3 Month 类模块 4 2.4 NotePad类说明 4 3编码实现 6 3.1 CalendarPad模块 6

3.2 Year模块 11 3.3 Month 模块 14 3.4 NotePad模块 16 4系统运行与测试 23 4.1程序主界面 23 4.2日志查看——无日志 23 4.3建立日志 24 4.4日志查看——有日志 24 4.5删除日志 26 总结 27 1需求与总体设计 1.1需求分析 根据题目要求,将日历与记事本功能相结合,实现对某日期的事件进行记录的功能,设计出简洁方便美观的GUI界面。 将本程序主界面可以分为四个部分:日历日期信息展示、年份、月份、记事本内容、记事本下方的时钟,用四个类来实现其“日历”和“记事本”这两大功能。通过主类CalendarPad创建动日历记事本软件的主界面,且该类中含有main

方法,程序从该类开始执行。再用余下的year、mouth、NotePad类来显示并改变日期和实现记事本的功能。 1.2总体设计思路 1. 可以编辑日历的日期 2. 可以判断当前日期是否存在日志记录 3. 对有日志记录的日期,可以对该日期的日志记录进行修改和删除 4. 对没有日志记录的日期,可以创建并保存新建的日志记录 5. 对保存的日志加密,查看时得输入密码 1.2.1功能图

简单日历(加记事本)

两个实体类分别为Note和Month Note实体类如下: package com.wangjing.calendar.pojo; public class Note { private int num ; private int year; private int month; private int day; private String diary; public int getNum() { return num; } public void setNum(int num) { this.num = num; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } public String getDiary() { return diary; } public void setDiary(String diary) { this.diary = diary;

} } Month类如下: package com.wangjing.calendar.pojo; public class Month { //??·Ymonthó?êy×?±íê? public static final int N_JANUARY = 1; public static final int N_FEBRUARY = 2; public static final int N_MARCH = 3; public static final int N_APRIL = 4; public static final int N_MAY = 5; public static final int N_JUNE = 6; public static final int N_JULY = 7; public static final int N_AUGUST = 8; public static final int N_SEPTEMBER = 9; public static final int N_OCTOBER = 10; public static final int N_NOVEMBER = 11; public static final int N_DECEMBER = 12; private int year; public Month(int year) { this.year = year; } //??·Yììêy private int D_JANUARY = 31; private int D_FEBRUARY = 28; private int D_MARCH = 31; private int D_APRIL = 30; private int D_MAY = 31; private int D_JUNE = 30; private int D_JULY = 31; private int D_AUGUST = 31; private int D_SEPTEMBER = 30; private int D_OCTOBER = 31; private int D_NOVEMBER = 30; private int D_DECEMBER = 31; public int getD_JANUARY() { return D_JANUARY; } public int getD_FEBRUARY() { if ((this.year % 4 == 0 && this.year % 100 != 0) || this.year % 400 == 0) {

2017年记事本日历(每日可记)

2017年1月 星期日星期一星期二星期三星期四星期五星期六1元旦节2初五3初六4初七5腊八节6初九7初十 8十一9十二10十三11十四12十五13十六14十七15十八16十九17二十18廿一19廿二20小年21廿四22廿五23廿六24廿七25廿八26廿九27除夕28春节29初二30初三31初四

1初五2初六3立春4初八5初九6初十7十一8十二9十三10十四11元宵节12十六13十七14情人节15十九16二十17廿一18雨水19廿三20廿四21廿五22廿六23廿七24廿八25廿九26 2月大27初二28初三

1初四2初五3初六4初七5惊蛰6初九7初十8妇女节9十二10十三11十四12植树节13十六14十七15十八16十九17二十18廿一19廿二20春分21廿四22廿五23廿六24廿七25廿八26廿九27三十28 3月小29初二30初三31初四

1初五 2初六3初七4清明节5初九6初十7十一8十二9十三10十四11十五12十六13十七14十八15十九16二十17廿一18廿二19廿三20谷雨21廿五22廿六23廿七24廿八25廿九26 4月大27初二28初三29初四30初五

1劳动节2初七3初八4青年节5立夏6十一7十二8十三9十四10十五11十六12十七13十八14母亲节15二十16廿一17廿二18廿三19廿四20廿五21小满22廿七23廿八24廿九25三十26 5月小27初二28初三29初四30端午节31初六

1儿童节2初八3初九4初十5芒种6十二7十三8十四9十五10十六11十七12十八13十九14二十15廿一16廿二17廿三18父亲节19廿五20廿六21夏至22廿八23廿九24 6月小25初二26初三27初四28初五29初六30初七

2018年日历记事本打印版

2018年1月 星期一星期二星期三星期四星期五星期六星期日 1 元旦2 十六 3 十七 4 十八 5 小寒 6 二十 7 廿一 8 廿二9 廿三 10 廿四 11 廿五 12 廿六 13 廿七 14 廿八 15廿九16 三十 17 腊月 18 初二 19 初三 20 大寒 21 初五 22初六23 初七 24 腊八节 25 初九 26 初十 27 十一 28 十二 29十三 30 十四 31 十五休

2018年2月 星期一星期二星期三星期四星期五星期六星期日 1 十六2 湿地日 3 十八 4 立春 5 二十6 廿一 7 廿二 8 小年 9 廿四 10 廿五 11 廿六 12 廿七13 廿八 14 情人节 15 除夕 16 春节 17 初二 18 初三 19 雨水20 初五 21 初六 22 初七 23 初八 24 初九 25 初十 26 十一 27 十二 28 十三 休 休 休 休 休 休 休 班 班

2018年3月 星期一星期二星期三星期四星期五星期六星期日 1 十四2 元宵节 3 十六 4 十七 5 惊蛰6 十九 7 二十 8 妇女节 9 廿二 10 廿三 11 廿四 12 植树节13 廿六 14 廿七 15 消费者权益日 16 廿九 17 二月 18 龙头节 19 初三20 初四 21 春分 22 初六 23 初七 24 初八 25 初九 26 初十27 十一 28 十二 29 十三 30 十四 31 十五

2018年4月 星期一星期二星期三星期四星期五星期六星期日 1 愚人节 2 十七3 十八 4 十九 5 清明 6 廿一 7 廿二 8 廿三 9 廿四10 廿五 11 廿六 12 廿七 13 廿八 14 廿九 15 三十 16 三月17 初二 18 初三 19 初四 20 谷雨 21 初六 22 地球日 23 初八24 初九 25 初十 26 十一 27 十二 28 十三 29 十四 30 十五 休班 班 休休 休休

2016年日历记事本超完美排版直接打印

星期一星期二星期三星期四星期五星期六星期日 1元旦2廿三3廿四 4廿五5廿六6小寒7廿八8廿九9三十10初一 11初二12初三13初四14初五15初六16初七17腊八节18初九19初十20大寒21十二22十三23十四24十五 25十六26十七27十八28十九29二十30廿一31廿二

星期一星期二星期三星期四星期五星期六星期日1祭灶节2湿地日3廿五4立春5廿七6廿八7除夕 8春节9初二10初三11初四12初五13初六14情人节 15初八16初九17初十18十一19雨水20十三21十四 22元宵节23十六24十七25十八26十九27二十28廿一

2016年3月 星期一星期二星期三星期四星期五星期六星期日29廿二1廿三2廿四3廿五4廿六5惊蛰6廿八 7廿九8妇女节9初一10龙头节11初三12植树节13初五 14初六15消费者... 16初八17初九18初十19十一20春分 21十三22十四23十五24十六25十七26十八27十九 28二十29廿一30廿二31廿三

2016年4月 星期一星期二星期三星期四星期五星期六星期日 1愚人节2廿五3廿六 4清明5廿八6廿九7初一8初二9初三10初四 11初五12初六13初七14初八15初九16初十17十一 18十二19谷雨20十四21十五22地球日23十七24十八 25十九26二十27廿一28廿二29廿三30廿四1劳动节

2016年5月 星期一星期二星期三星期四星期五星期六星期日2廿六3廿七4五四青... 5立夏6三十7初一8母亲节 9初三10初四11初五12护士节13初七14初八15初九 16初十17十一18博物馆日19十三20小满21十五22十六 23十七24十八25十九26二十27廿一28廿二29廿三 30廿四31廿五

电子日历记事本--Java课程设计

《面向对象程序设计》 课程设计报告 题目:电子日历记事本的设计 院(系):信息科学与工程学院 专业班级:计算机科学与技术1201班 学生姓名:程伟 学号:20121183011 指导教师:吴奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日 华中科技大学武昌分校制

面向对象程序设计课程设计任务书

目录 1需求与总体设计 (1) 1.1需求分析 (1) 1.2总体设计思路 (1) 1.2.1功能图 (1) 1.2.2类图 (2) 2详细设计 (3) 2.1 CalendarPad类说明 (3) 2.2 Year类说明 (3) 2.3 Month 类模块 (4) 2.4 NotePad类说明 (4) 3编码实现 (6) 3.1 CalendarPad模块..................................... 错误!未定义书签。 3.2 Year模块............................................ 错误!未定义书签。 3.3 Month 模块........................................... 错误!未定义书签。 3.4 NotePad模块......................................... 错误!未定义书签。4系统运行与测试 (20) 4.1程序主界面 (20) 4.2日志查看——无日志 (20) 4.3建立日志 (21) 4.4日志查看——有日志 (21) 4.5删除日志 (23) 总结 (24)

1需求与总体设计 1.1需求分析 根据题目要求,将日历与记事本功能相结合,实现对某日期的事件进行记录的功能,设计出简洁方便美观的GUI界面。 将本程序主界面可以分为四个部分:日历日期信息展示、年份、月份、记事本内容、记事本下方的时钟,用四个类来实现其“日历”和“记事本”这两大功能。通过主类CalendarPad创建动日历记事本软件的主界面,且该类中含有main方法,程序从该类开始执行。再用余下的year、mouth、NotePad类来显示并改变日期和实现记事本的功能。 1.2总体设计思路 1. 可以编辑日历的日期 2. 可以判断当前日期是否存在日志记录 3. 对有日志记录的日期,可以对该日期的日志记录进行修改和删除 4. 对没有日志记录的日期,可以创建并保存新建的日志记录 5. 对保存的日志加密,查看时得输入密码 1.2.1功能图

相关主题