JAVA小日历软件设计报告.doc

上传人:wj 文档编号:1220080 上传时间:2023-04-30 格式:DOC 页数:15 大小:890KB
下载 相关 举报
JAVA小日历软件设计报告.doc_第1页
第1页 / 共15页
JAVA小日历软件设计报告.doc_第2页
第2页 / 共15页
JAVA小日历软件设计报告.doc_第3页
第3页 / 共15页
JAVA小日历软件设计报告.doc_第4页
第4页 / 共15页
JAVA小日历软件设计报告.doc_第5页
第5页 / 共15页
JAVA小日历软件设计报告.doc_第6页
第6页 / 共15页
JAVA小日历软件设计报告.doc_第7页
第7页 / 共15页
JAVA小日历软件设计报告.doc_第8页
第8页 / 共15页
JAVA小日历软件设计报告.doc_第9页
第9页 / 共15页
JAVA小日历软件设计报告.doc_第10页
第10页 / 共15页
JAVA小日历软件设计报告.doc_第11页
第11页 / 共15页
JAVA小日历软件设计报告.doc_第12页
第12页 / 共15页
JAVA小日历软件设计报告.doc_第13页
第13页 / 共15页
JAVA小日历软件设计报告.doc_第14页
第14页 / 共15页
JAVA小日历软件设计报告.doc_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JAVA小日历软件设计报告.doc

《JAVA小日历软件设计报告.doc》由会员分享,可在线阅读,更多相关《JAVA小日历软件设计报告.doc(15页珍藏版)》请在冰点文库上搜索。

JAVA小日历软件设计报告.doc

佛山科学技术学院

《可视化编程技术》课程设计报告

小日历软件设计

学生姓名:

冯倩冰

学号:

2012914204

年级专业:

12级教育技术学

指导老师:

容汝佳

学院:

教育科学学院

广东★佛山

提交日期:

2014年6月

目录

1.前言………………………………………………………………………………2

2.概要设计…………………………………………………………………………3

2.1开发环境……………………………………………………………………3

2.2设计目标……………………………………………………………………3

2.3小日历功能…………………………………………………………………3

2.4界面设计……………………………………………………………………3

3.详细设计………………………………………………………………………4

3.1使用的JAVA类的说明……………………………………………………4

3.2类的主要方法………………………………………………………………5

3.2.1设计的方法分析………………………………………………………5

3.2.2程序大纲……………………………………………………………5

3.2.3设计总体认识…………………………………………………………6

3.2.4程序流程图……………………………………………………………6

4.运行结果………………………………………………………………………7

5.测试分析………………………………………………………………………7

5.1程序操作…………………………………………………………………7

5.2退出程序…………………………………………………………………7

6.源程序…………………………………………………………………………8

参考文献…………………………………………………………………………13

设计总结…………………………………………………………………………13

1

摘要:

该程序是一个图形界面的简单的Java小日历,具有美观舒适的界面,使用者能快捷简单地进行操作。

即时点击就能准确地获得需要的日期信息,充分降低了日期查找的难度和节约了时间,对人们的生活有重要的作用。

点击年份上下箭头可以选取所查年份,通过月份下拉箭头可以选择月份,然后页面就会出现你选择的那月进行每一天日期和星期的查询。

界面以红色系为主,给人舒适的感觉。

关键字:

java小日历软件,日历类,查询,事件

1前言

Java技术在1995年被互联网所接受,通过不断的发展和完善,已由单一的编程语言演变成为具有广泛实用性的开发大平台。

Java技术已被IT业内的主要公司所接受并加以运用。

Java技术的高效性、通用性、平台移植性和安全性等使之成为网络应用的首选技术。

从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java无处不在!

Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。

Java基本版本叫Java2标准版(Java2StandardEdition,J2SE),它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。

Java2移动版(TheJava2MobileEdition,J2ME)包含创建无线Java应用程序的API。

还有Java2企业版(TheJava2Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。

Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。

作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。

Java语言去掉了C++语言的一些容易引起错误的特性。

Java语言的特点有:

面向对象、跨平台、安全性、多线程和图形功能强。

Java应用小程序(JavaApplets)是需要Web浏览器(这种Web浏览器必须具有Java虚拟机和Java类库。

例如Netseave的Navigator、Mlerosoft的Explorer和Sun的Hotjava等)支持运行的Java应用程序。

利用Java应用小程序,就可以由Java应用小程序直接与应用服务软件进行交互。

这样,首先可以减轻HTTP协议的传输负荷,使其专用于HTML文件和Java应用小程序的传输;其次,Java应用小程序可以同时与多个应用服务软件之间建立连接,同时接受多个应用服务器的服务。

因此,Java的引入不仅给Web页面带来了动态性,而且使Web客户可以访问更强大的应用服务软件,进一步提高信息共享的质量。

2概要设计

2.1开发环境

开发平台:

MicrosoftWindowsXPProfessionalServicePack2

开发工具:

JBuilder2007+JDK1.6.0_02

2.2设计目标

(1)显示当月日历、当前日期、当前时间;

(2)可查寻任意月以及任意年的日历;

(3)使用图形化界面能够弹出对话框;

(4)正常退出程序。

 

 

2.3小日历功能

功能1:

启动小程序,日历就会显示系统当天的日期,这是最初的功能。

   功能2:

点击其他日期,该日期小框的背景色会变成粉红色,数字变成白色,突出显示你选中的日期。

   功能3:

点击年份上下箭头可以选取所查年份,此时月份和日期还是原来你选取的,不会改变。

功能4:

通过月份下拉箭头可以选择月份,页面就会出现你选择的年份、月份,便可进行每一天日期和星期的查询。

然后可重复功能3和功能4。

   功能5:

窗口可以进行缩小放大,以及可以正常关闭程序。

2.4页面设计

图2.3小日历面板

3详细设计3.1小日历使用的Java类的说明

类名:

MyCalendar

作用:

主类

继承的父类:

JApplet类

publicclassMyCalendarextendsJApplet{}

让applet作为一个可执行的程序来运行

publicstaticvoidmain(String[]args){

JFrameframe=newJFrame("日历");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

MyCalendarmyCalendar=newMyCalendar();

myCalendar.init();

frame.getContentPane().add(myCalendar);

frame.setSize(270,200);

frame.show();

}

}

类名:

CalendarTable

作用:

主类

继承的父类:

JTable类

classCalendarTableextendsJTable{}

设置日历的table

publicstaticclassCalendarTableextendsJTable{//表格类privateCalendarcalendar;

publicCalendarTable(TableModelmodel,Calendarcalendar){//构造方法super(model);

this.calendar=calendar;}

publicvoidchangeSelection(introw,intcolumn,booleantoggle,booleanextend){//选择表格单元格时

super.changeSelection(row,column,toggle,extend);

if(row==0){//选择为第一行(星期)时不改变单元格return;}

Objectobj=getValueAt(row,column);

if(obj!

=null){

calendar.set(Calendar.DAY_OF_MONTH,((Integer)obj).intValue());}}}

3.2类的主要方法

3.2.1设计的方法分析

在本程序中:

定义了一个Frame类,主要定义一个窗体框架,用于显示日历信息,并在主函数中只创建一个该窗体对象实现程序功能。

定义了一个主日历面板类MyCalendar,其中包含了日历设计所用到的全局变量、功能函数等,在Frame类里定义了其对象。

在该日历面板类里又设计了一个内部类CalendarTable表格类,用于布局日历天的显示格式。

3.2.2程序大纲

3.2.3设计的总体认识

lJAVA设计的摘要

lJAVA设计的目录结构

lJAVA设计的概要和详细设计

lJAVA设计需要编译的环境

lJAVA设计的实用性

3.2.4程序流程图

4运行结果

图4改变年月结果显示

5测试分析

5.1程序操作

对小程序进行调试,没有错误出现。

然后弹出了名为“日历”的小窗口,窗口左上角出现年份显示,按上下按钮可以改变年份;右上角显示月份,按下拉窗口可以选择1——12月;网格窗口中第一行是星期的显示;剩下的行大部分网格的背景色为白色,数字字体为红色,只有选中(当前系统)的日期显示为粉红色背景。

5.2退出程序

小程序弹出的窗口上方有最小化、最大化(还原)、关闭窗口的按键。

窗口最初大小是程序设计中frame.setSize(300,150);设置的,300是宽度,150是高度。

只要按红色关闭按钮,就可以顺利退出程序。

不存在无法关闭小程序的问题。

6程序清单:

importjava.awt.*;

importjava.awt.event.*;

importjava.util.*;

importjavax.swing.*;

importjavax.swing.event.*;

importjavax.swing.table.*;

publicclassMyCalendarextendsJApplet{

//定义周日到周六全局变量

publicstaticfinalStringWEEK_SUN="周日";

publicstaticfinalStringWEEK_MON="周一";

publicstaticfinalStringWEEK_TUE="周二";

publicstaticfinalStringWEEK_WED="周三";

publicstaticfinalStringWEEK_THU="周四";

publicstaticfinalStringWEEK_FRI="周五";

publicstaticfinalStringWEEK_SAT="周六";

//设置背景的颜色

publicstaticfinalColorbackground=Color.white;

//设置前景的颜色

publicstaticfinalColorforeground=Color.red;

//设置星期的背景颜色和前景颜色

publicstaticfinalColorheaderBackground=Color.pink;

publicstaticfinalColorheaderForeground=Color.white;

//设置被选中的日期的背景颜色和前景颜色

publicstaticfinalColorselectedBackground=Color.pink;

publicstaticfinalColorselectedForeground=Color.white;

privateJPanelcPane;

privateJLabelyearsLabel;//年的改变

privateJSpinneryearsSpinner;//年调控

privateJLabelmonthsLabel;

privateJComboBoxmonthsComboBox;//月份的下拉框

privateJTabledaysTable;//用来显示日期的table

privateAbstractTableModeldaysModel;

privateCalendarcalendar;

publicMyCalendar(){//构造初始化方法panel

cPane=(JPanel)getContentPane();

}

//初始化,对所有的空间进行布局

publicvoidinit(){

cPane.setLayout(newBorderLayout());//使用border布局管理器

calendar=Calendar.getInstance();

calendar=Calendar.getInstance();

yearsLabel=newJLabel("年:

");

yearsSpinner=newJSpinner();

yearsSpinner.setEditor(newJSpinner.NumberEditor(yearsSpinner,"0000"));

yearsSpinner.setValue(newInteger(calendar.get(Calendar.YEAR)));

//增加监听,监听年份的改变

yearsSpinner.addChangeListener(newChangeListener()

{

publicvoidstateChanged(ChangeEventchangeEvent)

{

intday=calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH,1);

calendar.set(Calendar.YEAR,

((Integer)yearsSpinner.getValue()).intValue());

intmaxDay=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH,day>maxDay?

maxDay:

day);

updateView();

}

});

JPanelyearMonthPanel=newJPanel();

cPane.add(yearMonthPanel,BorderLayout.NORTH);

yearMonthPanel.setLayout(newBorderLayout());

yearMonthPanel.add(newJPanel(),BorderLayout.CENTER);

JPanelyearPanel=newJPanel();

yearMonthPanel.add(yearPanel,BorderLayout.WEST);

yearPanel.setLayout(newBorderLayout());

yearPanel.add(yearsLabel,BorderLayout.WEST);

yearPanel.add(yearsSpinner,BorderLayout.CENTER);

monthsLabel=newJLabel("月:

");//向月份下拉框中添加内容

monthsComboBox=newJComboBox();

for(inti=1;i<=12;i++){//构造下拉框的12个月份

monthsComboBox.addItem(newInteger(i));

}

monthsComboBox.setSelectedIndex(calendar.get(Calendar.MONTH));

//下拉框当前月份为选中状态

monthsComboBox.addActionListener(newActionListener()

//注册月份下拉框的事件监听器

{ publicvoidactionPerformed(ActionEventactionEvent){

intday=calendar.get(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH,1);

calendar.set(Calendar.MONTH,monthsComboBox.getSelectedIndex());

intmaxDay=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH,day>maxDay?

maxDay:

day);

updateView();//更新显示

}

});

JPanelmonthPanel=newJPanel();

yearMonthPanel.add(monthPanel,BorderLayout.EAST);

monthPanel.setLayout(newBorderLayout());

monthPanel.add(monthsLabel,BorderLayout.WEST);

monthPanel.add(monthsComboBox,BorderLayout.CENTER);

daysModel=newAbstractTableModel(){

publicintgetRowCount(){

return7;//设置行数为7

}

publicintgetColumnCount(){

return7;//设置列数为7

}

publicObjectgetValueAt(introw,intcolumn){

if(row==0){//第一行显示星期

returngetHeader(column);

}

row--;

Calendarcalendar=(Calendar)MyCalendar.this.calendar.clone();

calendar.set(Calendar.DAY_OF_MONTH,1);

intdayCount=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

intmoreDayCount=calendar.get(Calendar.DAY_OF_WEEK)-1;

intindex=row*7+column;

intdayIndex=index-moreDayCount+1;

if(indexdayCount){

returnnull;

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

当前位置:首页 > PPT模板 > 商务科技

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

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