Java时钟日立记事本Word格式文档下载.docx

上传人:b****4 文档编号:7852740 上传时间:2023-05-09 格式:DOCX 页数:40 大小:40.29KB
下载 相关 举报
Java时钟日立记事本Word格式文档下载.docx_第1页
第1页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第2页
第2页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第3页
第3页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第4页
第4页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第5页
第5页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第6页
第6页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第7页
第7页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第8页
第8页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第9页
第9页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第10页
第10页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第11页
第11页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第12页
第12页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第13页
第13页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第14页
第14页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第15页
第15页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第16页
第16页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第17页
第17页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第18页
第18页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第19页
第19页 / 共40页
Java时钟日立记事本Word格式文档下载.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java时钟日立记事本Word格式文档下载.docx

《Java时钟日立记事本Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java时钟日立记事本Word格式文档下载.docx(40页珍藏版)》请在冰点文库上搜索。

Java时钟日立记事本Word格式文档下载.docx

工作内容

备注

10月26日-10月31日

11月01日-11月04日

该软件将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或者查看某个日期的记录内容。

XXXX

参考文献、资料索引

序号

文献、资料名称

编著者

出版单位

[1].肖磊、李钟尉,Java实用教程,人民邮电出版社,2008.5

[2].孙全党王吴迪赵枫朝,Java程序设计应用教程,电子工业出版社,2006.2

[3].赵玉阳,Java从入门到精通,清华大学出版社,2006.8

[4].耿祥义,《Java课程设计》,清华大学出版社,2004.1,第一版

1、引言.4

1.1项目的名称.4

1.2项目背景和目标4

2、需求分析

2.1系统概况4

2.2功能需求描述...5

3、总体设计

3.1开发与设计的总体思想5

3.2关系图....5

3.3Java源文件及其功能...5

3.4系统详细设计.6

4、运行结果8

5、程序代码

5.1CalendarPad..11

5.2Clock20

5.3Month23

5.4Year..25

5.5Notepad.....26

&

总结31

1、引言

1.1项目的名称

1.2项目背景和目标

目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等

重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。

按照教学培养计划要求,学生在学习完课本中指定课时的知识后,应安排一定课时的课程设计。

其主要目的是使学生深入理解并实践

在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等。

故此日历记事本”应运而生。

本课程设计是为了配合Java程序设计课程,帮助学生深入学习掌握Java语言,熟练运用这个工具而设

立的课程。

通过课程设计各个项目的综合训练,加强学生对JAVA语言的理解,检验学生对专业理论知识理

解与掌握的程度,锻炼学生综合运用JAVA程序设计处理所学的知识实际分析问题、解决问题的能力,使课

堂上的理论在实践中得到运用,提高学生的综合素质,为学生毕业后的实际工作打好基础。

同时也满足了大

多数同学对于一款简单易用的日记本软件的需求。

2、需求分析

2.1系统概述

用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期;

用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,显示系统时间;

用户可以查询到某个月的所有的提示信息。

是个平时写日记、备忘录的好工具。

2.2功能需求描述

时钟日历记事本的总体目标是为使用者记录、管理个人日记以及每日心里路程,其中主要实现以下功能

1、显示信息:

用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。

2、查询信息:

3、删除信息:

用户可以删除添加的信息。

4、显示时钟

3、总体设计

3.1开发与设计的总体思想

创建主类CalendarPad控制整个程序的调控与连接,该类负责创建本时钟日历记事本程序

的主窗口,含有main方法,程序从该类开始执行。

并创建Year、Month、NotePad、Clock四

个类分别负责年份、月份、记事本以及时钟的创建及管理。

3.2系统模块结构图

3.3Java源文件及其功能

表1-1java源文件及其功能

序号

文件名

主要功能

1

CalendarPad.java

创建实用万年历记事本程序的主窗口

含有main方法

2

NotePad.java

该文件负责创建记事本

3

Year.java

该文件负责创建管理年份的对象

4

Month.java

该文件负责创建管理月份的类对象

5

Clock.java

该文件负责创建管理时钟的类对象

3.4系统详细设计

主类CalendarPad

1成员变量

成员变量描述

变量类型

名称

年、月、日

int

Year,month,day

保存日志的散列表

Hashtable

hashtable

存放散列表的文件

File

file

显示日期

JTextField[]

showDay

日历对象

Calendar

日历

记事本对象

NotePad

notepad

Month

负责改变月

Year

负责改变年

2•方法

功能

CalendarPad

创建程序主窗口

构造方法

设置日历牌

设置日历的年份、月份

排列号码

排列月份中的号码

mousePressed

处理MouseEvent事件

接口方法

mian

程序开始运行

记事本NotePad

「•成员变量.

描述变量类型名称

文本输入区

保存、删除日志的按钮

保存散列表的文件

JTextAreaButtonHashtableFile

text

保存日志、删除日志

table

记录日志的年、月、日

year,month,day

创建记事本对象

setYear

设置年份

getYear

获取年份

setMonth

设置月份

getMonth

获取月份

setDay

设置日期

getDay

获取日期

获取日志内容

保存日志

删除日志

actionPeformed

处理ActionEvent事件

年Year

1•成员变量

描述

表示年份的整数(负数表示

year

公兀前)

显示年份的文本条

JTextField

showYear

负责增减年份的按钮

JButton

明年,去年

创建“年”对象

月Month

表示月份的整数(负数表示

month

公元前)

显示月份的文本条

ShowMonth

负责增减月份的按钮

上月,下月

创建“月”对象

setMonth

getMonth

时钟Clock

表示时钟

JFrame

Clock

显示时间

Jlabel

创建“时钟”对象”

Linsterwindows

设置监听

calendar

获取时间,时分秒

gregrion

画笔,设置秒针等

4、运行结果

 

」年

2015T年|上R

11下阡

5MH

见■三

星期阿

ana

E

7

S

10

11

12

13

H

15

1€

17

1fi

19

?

22

23

24

25

26

27

谄左年filfiXlESU靳直年询却乘示处稠语回车确镒

月窗日

18^1LL冊】隐曰西血帝时钟

上琳

2D15

“年

上月

f月

2015SF11月2丁日

年期C1

年?

1-

広!

M二

51*=.

年FflES

T*1/i

^TilA

r

«

14

151«

17IS10

2J

2S

2b

30

iSN纶住i辐扎fli碱扎師去注松血數占k公匸苛人匸回牟追矩

询问

E(N)

53示则讪

Cack

2016SFl1tl27LJ

上4加馆

hri

E.Rflii

BAtn

星MA

T

B

9

IP

1J

IS

ie

20

2i

2ft

U4

靑亡牛ffl切JWJk前靈期I棗廠直示沙Wlh腼车毗

5、程序代码

5.1CalendarPad

packagechll.demo;

importjava.util.Calendar;

importjavax.swing.*;

importch11.demo.Month;

importch11.demo.NotePad;

importch11.demo.Year;

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjava.util.Hashtable;

publicclassCalendarPadextendsJFrameimplementsMouseListener

{

intyear,month,day;

Hashtablehashtable;

Filefile;

JTextFieldshowDay[];

JLabeltitle[];

Calendar日历;

int星期几;

NotePadnotepad=null;

Month负责改变月;

Year负责改变年;

String星期[]={"

星期日"

"

星期一"

星期二"

星期三"

星期四"

星期五"

星期六"

};

JPanelleftPanel,rightPanel;

publicCalendarPad(intyear,intmonth,intday)//CalendarPad构造方法

leftPanel=newJPanel();

JPanelleftCenter=newJPanel();

JPanelleftNorth=newJPanel();

leftCenter.setLayout(newGridLayout(7,7));

rightPanel=newJPanel();

this.year=year;

this.month=month;

this.day=day;

负责改变年=newYear(this);

//实例化年

负责改变年.setYear(year);

负责改变月=newMonth(this);

//实例化月

负责改变月.setMonth(month);

title=newJLabel[7];

//星期

showDay=newJTextField[42];

//天数

for(intj=0;

j<

7;

j++)

title[j]=newJLabel();

〃星期一至星期五

title[j].setText(星期[j]);

title[j].setBorder(BorderFactory.createRaisedBevelBorder());

leftCenter.add(title[j]);

}

title[0].setForeground(Color.red);

//星期日

title[6].setForeground(Color.blue);

//星期六

for(inti=0;

i<

42;

i++)

showDay[i]=newJTextField();

showDay[i].addMouseListener(this);

showDay[i].setEditable(false);

leftCenter.add(showDay[i]);

〃天数

日历=Calendar.getlnstance();

Boxbox=Box.createHorizontalBox();

box.add(负责改变年);

box.add(负责改变月);

leftNorth.add(box);

leftPanel.setLayout(newBorderLayout());

//设置格局

leftPanel.add(leftNorth,BorderLayout.NORTH);

leftPanel.add(leftCenter,BorderLayout.CENTER);

leftPanel.add(newLabel("

请在年份输入框输入所查年份(负数表示公元前),并回车确

定"

),

BorderLayout.SOUTH);

leftPanel.validate();

Containercon=getContentPane();

JSplitPanesplit=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,

leftPanel,rightPanel);

con.add(split,BorderLayout.CENTER);

con.validate。

hashtable=newHashtable();

file=newFile("

日历记事本.txt"

);

if(!

file.exists())

try{

FileOutputStreamout=newFileOutputStream(file);

ObjectOutputStreamobjectOut=newObjectOutputStream(out);

objectOut.writeObject(hashtable);

objectOut.close();

out.close();

catch(IOExceptione)

notepad=newNotePad(this);

rightPanel.add(notepad);

设置日历牌(year,month);

addWindowListener(newWindowAdapter()〃添加适配器,和电脑系统时间匹配

{publicvoidwindowClosing(WindowEvente)

System.exit(O);

});

setVisible(true);

setBounds(100,50,720,300);

〃窗口大小

validate();

publicvoid设置日历牌(intyear,intmonth)//设置日礼牌的方法

日历.set(year,month-1,1);

星期几二日历.get(Calendar.DAY_OF_WEEK)-1;

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

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

排列号码(星期几,31);

//31天的月份

elseif(month==4||month==6||month==9||month==11)

排列号码(星期几,30);

//30天的月份

elseif(month==2)

if((year%4==0&

year%100!

=0)||(year%400==0))

排列号码(星期几,29);

else

排列号码(星期几,28);

//闰年的判断

publicvoid排列号码(int星期几,int月天数)

for(inti=星期几,n=1;

i<星期几+月天数;

showDay[i].setText("

"

+n);

if(n==day)

加重

平常

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

showDay[i].setFont(newFont("

TimesRoman"

Font.BOLD,20));

天数的字体,显示今天是第几天

showDay[i].setFont(newFont("

Font.BOLD,12));

的天数字体

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

if(i%7==6)

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

//

星期六的时候天数的颜色

if(i%7==0)

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

//星期六的时候天数的颜色

n++;

星期几;

〃遍历出星期

for(inti=星期几+月天数;

〃对应星期显示出天数

publicintgetYear()//get,set方法

returnyear;

publicvoidsetYear(inty)

year=y;

notepad.setYear(year);

publicintgetMonth()

returnmonth;

publicvoidsetMonth(intm)

month=m;

notepad.setMonth(month);

publicintgetDay()

returnday;

publicvoidsetDay(intd)

day=d;

notepad.setDay(day);

publicHashtablegetHashtable()

returnhashtable;

publicFilegetFile()

returnfile;

publicvoidmousePressed(MouseEvente)//接受鼠标的事件,获取日志的内容,

JTextFieldsource=(JTextField)e.getSource();

day=Integer.parselnt(source.getText());

notepad.设置信息条(year,month,day);

notepad.设置文本区(null);

notepad.获取日志内容(year,month,day);

catch(Exceptionee)

publicvoidmouseClicked(MouseEvente)

publicvoidmouseReleased(MouseEvente)

publicvoidmouseEntered(MouseEvente)

publicvoidmouseExited(MouseEvente)

publicstaticvoidmain(Stringargs[])

Calendarcalendar=Calendar.getlnstance();

inty=calendar.get(Calendar.YEAR);

intm=calendar.get(Calendar.MONTH)+1;

intd=calendar.get(Calendar.DAY_OF_MONTH);

newCalendarPad(y,m,d);

5.2Clock

//packagecom.clock;

importjava.awt.BasicStroke;

importjava.awt.Color;

importjava.awt.Font;

importjava.awt.Graphics;

importjava.awt.Graphics2D;

importjava.awt.Insets;

importjava.awt

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2