好好学习,天天向上,学科吧欢迎您!
当前位置:首页 >> 最新范文 内容页

记事本-java程序设计报告

记事本-java程序设计报告 本文关键词:程序设计,记事本,报告,java

记事本-java程序设计报告 本文简介:2012~2013学年度第1学期《Java程序设计》课程报告项目:日历记事本专业:计算机科学与技术学号:10570235姓名:常兆华班级:计算机2班分数:角色姓名学号任务分配小组评定组长王思琪10570226强制练习工具组员常兆华10570235日历记事本隋欣10570219日历记事本杨海钰1057

记事本-java程序设计报告 本文内容:

2012~2013学年度第1学期

《Java程序设计》课程

项目:

日历记事本

专业:

计算机科学与技术

学号:

10570235

姓名:

常兆华

班级:

计算机2班

分数:

角色

姓名

学号

任务分配

小组评定

组长

王思琪

10570226

强制练习工具

组员

常兆华

10570235

日历记事本

隋欣

10570219

日历记事本

杨海钰

10570232

小游戏

关乐

10570231

小游戏

王冕卿

10570223

Atm取款机系统

第一部分、项目整体概述……………………………………………3页

第二部分、我的任务…………………………………………………5页

第三部分、代码和详细注释…………………………………………6页

第四部分、心得体会………………………………………………14页

第一部分、项目整体概述

日历记事本----------带有日程提醒功能的日历。

2.显示信息:

用户可以看到这个月的信息,包括年份、日期等。

点击翻页按钮可以查询前一个月的日期,也可以向后翻页查询下一个月的日期。同样,可以根据年份查询不同年份的日期。

日期的显示有一些优化,用户不仅可以查询到本月份的信息,还可以根据上个月与下个月的日期填充来方便查询日期和星期。

3.定时提醒:

用户可以针对某一天来添加、删除和编辑这一天的日程提醒信息

当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。

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

日历记事本共有4个java源文件。

CalendarPad.java

该java文件生成的类负责创建本日历记事本程序主窗口。该类含有main方法,程序从该类开始执行。

Year.java

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

Month.java

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

NotePad.java

该文件负责创建记事本。

截图:

初始界面

可输入年份查看相应的日历与记事本

第二部分、我的任务

具体任务:

资料查找,汇总及需求分析,负责日历的编写,和板块的布局输出等。

编写大致思路:

我主要负责这个项目中日历的编写和输出显示的一部分。

经过调查自己电脑中的日历记事本和大家纸质的日历记事本,我知道若想完整地显示一个月的信息至少需要一个首先需要一个7*7的网格,要用到

GridLayout网格设置语言。其中每一列的顶层可以称它为title“标题”,也就是显示“星期几”,表头显示这个月所在的年份与月份。随后对日期进行编号,判断闰平年、大小月等必要的程序。为了能使用户查找到前一年、下一年,上一月、下一月的内容,还需要设置按钮,让成员变量实现其更改。

总体规划:

主类CanlendarPad

1.成员变量

成员变量描述

变量类型

名称

年、月、日

int

year,month,day

保存日志的散列表

Hanshtable

hanshtable

存放散列表的文件

File

file

显示日期

JtextFile[]

showDay

日历对象

Calendar

日历

记事本对象

NotePad

notepad

Month

负责改变月

Year

负责改变年

2.方法

名称

功能

备注

CalendarPad

创建窗口主程序

构造方法

设置日历牌

设置日立的年份、月份

排列号码

排列月份中的号码

mousePressed

处理MouseEvent事件

接口方法

main

程序开始运行

第三部分、源代码及详细注释:

CalendarPad

import

java.util.Calendar;

//写的Calendar类里面导入这个包下的所有类库

public

class

CalendarPad

extends

JFrame

implements

MouseListener

{

//定义CalendarPad类继承JFrame

父类的属性

MouseListener鼠标监听

int

year,month,day;//定义年月日

Hashtable

hashtable;

//用来保存日志的散列哈希表

File

file;

//存在哈希表中的文件

JTextField

showDay[];

//每天是7X7的一个小格子单元

JLabel

title[];

//用来创建日历牌中的表格属性“星期几”

Calendar

日历;//定义“日历”方法是calendar

int

星期几;

//整形定义“星期几”方法

NotePad

notepad=null;

//日记本对象,初值为空

Month

负责改变月;//定义“负责改变月”方法

Year

负责改变年;//定义“负责改变年”方法

String

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

JPanel

leftPanel,rightPanel;

//界面设计,左边是日历,右面为记事本

public

CalendarPad(int

year,int

month,int

day)//在CalendarPad类中定义年月日

{

getContentPane().setBackground(new

Color(255,228,225));//初始化一个容器,设置颜色值为(255,,228,225)

setBackground(new

Color(255,250,250));//颜色设置

setFont(new

Font(“微软雅黑“,Font.BOLD,12));//字体设置

setForeground(new

Color(70,130,180));

setTitle(““);

leftPanel=new

JPanel();//传入一个布局对象作为参数来创建左边的面板

JPanel

leftCenter=new

JPanel();

JPanel

leftNorth=new

JPanel();

leftCenter.setLayout(new

GridLayout(7,7));

//设置窗口,为7*7的网格,参数说明(行数,列数)

rightPanel=new

JPanel();//设置右侧面板

this.year=year;

this.month=month;

this.day=day;

负责改变年=new

Year(this);

负责改变年.setFont(new

Font(“微软雅黑“,Font.BOLD,12));//设置字体

负责改变年.setForeground(new

Color(65,105,225));//设置前景色

负责改变年.setYear(year);//调用方法

负责改变月=new

Month(this);

负责改变月.setFont(new

Font(“微软雅黑“,Font.BOLD,12));//设置字体

负责改变月.setForeground(new

Color(65,105,225));//设置前景色

负责改变月.setMonth(month);//调用方法

title=new

JLabel[7];//“星期几”标题,有7个

showDay=new

JTextField[42];

//显示日期的文件有42个(对应42个网格)

for(int

j=0;j=

0;i--)//将上个月部分日期放入单元格

{

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

showDay[i].setText(date

+

““);

date

--;

}

int

flag

=

1;//将下个月部分日期放入单元格

for(int

i=星期几+月天数;i<42;i++)

{

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

showDay[i].setText(String.valueOf(flag));

flag

++;

}

}

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.设置信息条(year,month,day);

notepad.设置文本区(null);

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

}

catch(Exception

ee)

{

}

}

public

void

mouseClicked(MouseEvent

e)

{

}

public

void

mouseReleased(MouseEvent

e)

{

}

public

void

mouseEntered(MouseEvent

e)

{

}

public

void

mouseExited(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);

}

}

YEAR:

import

javax.swing.*;

import

java.awt.*;

import

java.awt.event.*;

public

class

Year

extends

Box

implements

ActionListener

{

int

year;

int

month;

JTextField

showYear=null;

JButton

明年,去年;

CalendarPad

日历;

public

Year(CalendarPad

日历)

{

super(BoxLayout.X_AXIS);

showYear=new

JTextField(4);

showYear.setBackground(new

Color(230,230,250));

showYear.setForeground(new

Color(255,20,147));

showYear.setFont(new

Font(“TimesRomn“,Font.BOLD,14));

this.日历=日历;

year=日历.getYear();

明年=new

JButton(“下年“);

明年.setForeground(new

Color(0,139,139));

明年.setFont(new

Font(“微软雅黑“,Font.BOLD,13));

去年=new

JButton(“上年“);

去年.setFont(new

Font(“微软雅黑“,Font.BOLD,13));

去年.setForeground(new

Color(0,139,139));

add(去年);

add(showYear);

add(明年);

showYear.addActionListener(this);

去年.addActionListener(this);

明年.addActionListener(this);

}

public

void

setYear(int

year)

{

this.year=year;

showYear.setText(““+year);

}

public

int

getYear()

{

return

year;

}

public

void

actionPerformed(ActionEvent

e)

{

if(e.getSource()==去年)

{

year=year-1;

showYear.setText(““+year);

日历.setYear(year);

日历.设置日历牌(year,日历.getMonth());

}

else

if(e.getSource()==明年)

{

year=year+1;

showYear.setText(““+year);

日历.setYear(year);

日历.设置日历牌(year,日历.getMonth());

}

else

if(e.getSource()==showYear)

{

try

{

year=Integer.parseInt(showYear.getText());

showYear.setText(““+year);

日历.setYear(year);

日历.设置日历牌(year,日历.getMonth());

}

catch(NumberFormatException

ee)

{

showYear.setText(““+year);

日历.setYear(year);

日历.设置日历牌(year,日历.getMonth());

}

}

}

}

第四部分、心得体会

通过这次对日历记事本的程序编写,我对java有了更深一步的探求和理解。首先是对日历记事本的外观理解、分析,以及查找电脑上、手机上运用的日历记事本的成品,都让我们有了灵感和坚定了决心。我和隋欣一同完成它经历了许多困难。因为知识还是有些不足,我们对java许多语句进行了资料的查找和搜集,经过多方面的努力和一遍又一遍地报错排错,最后对于界面的设计,我们两个也是很久才达成共识。我们当然也学会了如何坚持一件事情。使我们非常默契的配合和精心的准备与编写,最终完成了这样一个我们眼中十分完美的程序。这是一次很难得的体会和经历,这个程序将永远保存在我的电脑里当做最宝贵的一次课程设计。

15

TAG标签: