后得知方法,再对其代码做出修改,然后顺利进行。从中得到思考,设计需要对其作出反复测试与检验,了解问题,寻找方法,最后得出正确的代码。
参考文献
[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)年份的变量之间的类型转换,由于方法的变量要求,其类型的转换有点棘手。
而针对以上问题做出的解决方法为上网查看问题所在,最