资料详情

基于JavaSwing的日历管理系统

头像

理工论文

编号:11121
后得知方法,再对其代码做出修改,然后顺利进行。从中得到思考,设计需要对其作出反复测试与检验,了解问题,寻找方法,最后得出正确的代码。

参考文献

[1] 李刚.疯狂Java讲义.第四版.电子工业出版社.2018.

仿照如上格式,写不少于5条参考文献记录

,

1.选题背景

时间是人类生活必不可少的重要因素,如果没有时间的概念,社会将不会有所发展。在网络越来越发达的今天,人们通过网络接触的时间小程序越来越多,而一切小程序皆是为了人们而服务的,而日历则是记录时间的工具之一,翻看日历则是日历最重要的功能。此次选题则是针对日历做出日历的基本功能。

本程序是可以根据用户的选择来查看用户所需要知道的年月份。

2.开发技术概述

本程序采用Java,开发者应具有Java程序设计语言,Swing基本GUI组件,多线程,文件使用的基本知识和技能,程序初始显示出当前的日期,而后根据用户的选择来跳转至用户想要查看的年份与月份。

3.功能需求分析

用户可在年份与月份的列表框中选择出想要查看的年份与月份,程序可以根据用户的要求显示出相应信息。

(1)年份查询功能

以当前的年份为基础,将前20年的年份记录,和其后100年的年份,生成在年份查询列表中。即年份列表中收集了当前年份的前20年与后100年。

(2)月份查询功能

月份列表,包含一年具有的12个月份。

(3)查看功能

提供一个按钮,用来实现查看功能。程序初始运行,默认显示的是当前系统的年份和月份,用户需要选择要查询的日期,单击查看按钮,程序就会将默认的当前年份月份跳转至用户所要查看的年份月份。

(4)菜单及菜单项功能                            页码

提供菜单的相关组件,菜单条上有2个菜单:1)编辑菜单,其包括一个菜单项――退出,可根据用户意愿来选择是否退出。2)关于菜单,其包括一个菜单项――我,单击显示作者信息。

(5)日期面板

用7*6的42个按钮作为组成面板的内容,第1行作为星期几的标题。

4.功能设计

(1)年份查询功能

通过组合框,显示年份列表信息,可以选择下拉列表选项实现对不同年份的选择。具体说明如下表所示。

表4-1 年份列表

序号

功能内容

控件或方法

对象名

备注

1

存放年份

JComboBox

YearBox

2

年份标签

JLabel

YearLabel

3

年份获取

getYear( )

now_year

获取的值为当前年份-1900

4

添加年份

addItem( )

YearBox

5

设置默认年份

setSelectedIndex( )

YearBox

(2)月份查询功能

通过组合框,显示月份列表信息,可以选择下拉列表选项实现对不同月份的选择。具体说明如下表所示。

表4-2 月份列表

序号

功能内容

控件或方法

对象名

备注

1

存放月份

JComboBox

MonthBox

2

月份标签

JLabel

MonthLabel

3

月份获取

getMonth( )

now_month

4

添加月份

addItem( )

MonthBox

5

设置默认月份

setSelectedIndex( )

MonthBox

(3)查看功能

给按钮添加监听器,当单击按钮时,执行查询,查询当前选择的年份月份的日历信息。具体说明如下表所示。

表4-3 按钮功能表

序号

功能内容

控件或方法

对象名

备注

1

查看按钮

JButton

button_ok

2

添加监听器

addActionListener

button_ok

(4)菜单及菜单项

首先创建菜单条,若干菜单,和若干菜单项。再把菜单项放到菜单上,把菜单放到菜单条上,把菜单条放到窗体上。给菜单项添加监听器,单击菜单项,执行相应的操作。具体说明如下表所示。

表4-4 菜单功能

序号

功能内容

控件或方法

对象名

备注

1

设置菜单

JMenu

bj1.bj2

2

设置菜单子项

JMenuItem

x1.x2

3

添加内容

add( )

bj1.bj2

4

设置监听器

addActionListener( )

x1,x2

5

弹出确认框

showConfirmDialog( )

this

JOptionPane类

6

弹出信息框

showMessageDialog( )

this

JOptionPane类

(5)日期面板

创建JPanel面板,设置网格布局方式,添加按钮控件显示日历信息。具体说明如下表所示。

表4-5 日期功能表

序号

功能内容

控件或方法

对象名

备注

1

设置按钮数组

JButton[]

button_day

2

设置布局

setLayout( )

place_day

网格布局与间隙

3

设置星期几布局

setText( )

button_week[]

4

转换整形

parseInt( )

year_sel

Integer类

5

设置日历时间

setTime( )

cal

GregorianCalendar类

6

判断闰年

isLeapYear( )

cal

GregorianCalendar类

7

获取星期几

getDay( )

firstDay

Date类

8

设置文本

setText( )

button_day[]

9

事件最初的对象

getSource( )

e

(6)窗体设计

自定义窗体类,实现日历基础面板的展示。具体说明如下表所示。

表4-6 窗体功能表

序号

功能内容

控件或方法

对象名

备注

1

设置标题名称

setTitle( )

this

2

设置窗口位置

setLocation( )

this

3

设置窗口大小

setResizable( )

this

4

自动设置长高度

pack( )

this

5

添加内容

add( )

place_ym,place_day,place_main,bar

6

设置关闭操作

setDefaultCloseOperation( )

ct

7

设置可见性

setVisible( )

ct

5.系统流程分析

本日历程序的功能是查看当前的年月份与跳转至用户想要的年月份。启动程序后,当前展示的界面则为目前的年月份,然后用户则可以选择想要查看的年份,然后可选择是否查看也可以继续选择月份,再确认查看。此步骤可重复操作,直至用户想要结束本程序,则可以选择编辑中的退出,当选择编辑中的退出后,会弹出确认对话框,再确认后即可退出程序,取消退出即可返回程序,继续查看内容。系统的流程图如下所示。

默认界面

确认 选择月份

确认

确认

图5-1系统总体设计流程图

6.界面设计

默认界面:运行Calendar.java程序后,得到默认界面。

图6-1默认界面

查看界面:点击查看按钮后,得到查看界面。

图6-2查看界面

退出确认界面:选择编辑的退出后,弹出确认对话框。

图6-3确认界面

7.系统测试

用户运行程序,通过选择年份与月份,点击查看得到目标界面。再点击编辑中退出按钮,确认退出。

图7-1月份选择

图7-2查看界面

图7-3确认界面

8.总结

本次系统设计总结,我们将对在做这次系统设计中遇到过的问题进行总结。本次设计遇到了以下问题:

(1)获取当前日期的方法中,获取年份的方法需要注意返回的值不为期望的值。

(2)年份的变量之间的类型转换,由于方法的变量要求,其类型的转换有点棘手。

而针对以上问题做出的解决方法为上网查看问题所在,最