




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 项目名称 中华万年历项目名称 中华万年历 软件测试方案软件测试方案 班级 班级 软件软件 1212 日期 日期 20142014 年年 1212 月月 1 1 日日 2 项目组成员 项目组成员 组长 组长 班级学号 1060612014051 姓名 张亚亭 负责工作 单元测试 小组成员 小组成员 1 班级学号 1060612014046 姓名 王晓武 负责工作 系统测试 2 班级学号 1060612014047 姓名 王欢欢 负责工作 验收测试 3 班级学号 1060612014048 姓名 李本帅 负责工作 验收测试 4 班级学号 1060612014049 姓名 邓茂记 负责工作 撰写万年历软件分析质量报告 5 班级学号 1060612014050 姓名 薛磊 负责工作 撰写万年历软件测试方案 6 班级学号 1060612014052 姓名 唐明旭 负责工作 集成测试 7 班级学号 1060612014053 姓名 晏智 负责工作 集成测试 3 目目 录录 1 1 引言引言 1 1 1 编写目的 1 1 2 项目背景 1 1 3 用户群 1 1 4 基本定义 1 1 5 参考资料 2 2 2 测试概要测试概要 2 2 1 测试环境 3 2 1 1 软件硬件配置 3 2 1 2 运行界面 3 2 2 测试计划 4 2 3 测试执行 4 2 4 测试用例 5 2 4 1 功能性 5 2 4 2 易用性 5 2 5 单元测试 6 2 5 1JUnit单元试 7 2 5 2 单元测试测试用例 7 2 5 3 调试与评估 7 2 6 集成测试 7 2 6 1集成测试概要 7 2 6 2 集成测试测试用例 8 2 7 系统测试 9 2 7 1系统测试概要 9 2 7 2 系统测试测试用例 10 2 8 验收测试 10 2 8 1 验收测试内容 10 2 8 2 测试用例 10 4 3 3 测试结果测试结果 14 3 1 BUG性质及模块分布表 14 3 2 改进建议 15 4 4 测试结论测试结论 16 4 1 功能 16 4 2 易用性 16 4 3 可靠性 17 4 4 安全性 17 5 心得体会心得体会 17 6 实验代码实验代码 17 5 1 1 引言引言 1 11 1 编写目的编写目的 本测试报告为万年历系统项目的测试报告 目的在于测试总结以及分析测试结果 描述系统是否符合需求 预期参考人员包括用户 测试人员 开发人员 伴随着人民 日益繁忙的工作学习 电子万年历应运而生 它不仅可以随时随地的查询日历 而且 可以记录当天的自己想记录的文档 方便快捷 它整合每一年的日历 包括瑞年和平 年 让用户随时随地的可以方便的查知日期记录行踪规划 1 21 2 项目背景项目背景 目前人民的生活节奏越来越快 对随时随地的查知日期 规划行程显得尤为重要 因此万年历应运而生 针对各类大型的随时查询系统 一款小巧的日历查询工具也是 一个不错的选择 既方便查询而且可以做记录 因此 我们觉得开发这个万年历也是 十分必要的 1 31 3 用户群用户群 适用于普遍的大众人群 1 41 4 基本定义基本定义 五类测试错误类型 A 类 严重错误 包括以下各种错误 由于程序所引起的死机 非法退出 死循环 因错误操作导致的程序中断 6 功能错误 数据通讯错误 B 类 较严重错误 包括以下各种错误 程序错误 程序接口错误 C 类 一般性错误 包括以下各种错误 操作界面错误 包括数据窗口内列名定义 含义是否一致 打印内容 格式错误 删除操作未给出提示 与日常生活不符 D 类 较小错误 包括以下各种错误 界面不规范 辅助说明描述不清楚 错误操作未给用户提示 提示窗口文字未采用行业术语 1 51 5 参考资料参考资料 1 JAVA 编程思想 机械工业出版社 2007 2 JAVA 经典实例 中国电力出版社 2009 3 软件测试方法和技术 第二版 清华大学出版社 2 2 测试概要测试概要 测试目的 在于为执行测试提供用例 指导测试的实施 查找分析缺陷 评估测试质量并执行 测试用例后 需要跟踪故障 以确保开发的产品适合需求 测试声明 测试人员在软件开发过程中的任务 1 寻找 Bug 2 软件各种属性的组合程度良好 7 2 避免软件开发过程中的缺陷 3 衡量软件的品质 4 关注用户的需求 2 12 1 测试环境测试环境 2 1 12 1 1 软件硬件配置软件硬件配置 环境 Eclipse Jre 硬件配置 CPU CPU 奔腾 以上 内存 512M 以上 硬盘 500G 或以上 软件配置 Jdk Apache Tomcat 7 0 表 2 1 配置表 2 1 12 1 1 运行界面运行界面 运行界面如下 8 图 2 1 万年历运行结果 2 22 2 测试计划测试计划 测试阶段测试阶段 计划开始时计划开始时 间间 实际开始实际开始 时间时间 计划结束计划结束 时间时间 需求审查 11 2011 2111 22 设计审查 11 2211 2211 24 单元测试 11 2411 2411 30 集成测试 12 112 112 6 系统测试 12 612 612 7 验收测试 12 812 812 8 表 2 2 测试计划 2 3 测试执行 此次测试严格按项目测试计划执行 按时完成了测试计划规定的测试对象的测试 针对测试计划规定的测试策略 在测试执行中都有实现 在测试执行过程中 依据测试 计划和测试用例 对系统进行了完整的测试 9 2 42 4 测试用例测试用例 1 1 万年历菜单栏功能测试 万年历菜单栏功能测试 主要测试菜单栏处还原 最小化 最大化以及关闭四个按钮能否正常实现其相应 的功能 2 2 万年历日期选择测试 万年历日期选择测试 a 基本功能测试 主要测试万年历日期选择中 上一年 下一年 上月 下月 以及年份选择 文本框的功能能否正常实现 即做相应的操作后 在日历显示面板处显示相应的日历 b 边界值测试 主要测试年份在 1000 时点击上一年按钮能否提示错误信息或继续出现 999 年的日 历 年份在 9999 时点击下一年按钮能否提示错误信息或继续出现 10000 年的日历 在 年份文本框中输入不合法的年份能否提示错误信息 月份在 1 时点击上月能否显示上一 年份 12 月的日历 月份在 12 时点击下月能否显示下一年份 1 月的日历 c c 等价类划分 主要把年份划分为又四位数字构成 超过四位数字 数字和其他字符组成 四位 数字又划分为第一个数字是否为 1 这几个等价类 然后分别找测试用例对其进行测试 3 3 万年历日历显示面板测试万年历日历显示面板测试 主要测试日历显示是否正确 日期是否合法 以及单元格的变化测试 4 4 万年历日志功能测试 万年历日志功能测试 主要测试在日志编辑区日志的编辑功能 保存日志按钮与删除日志按钮功能的实现 5 5 万年历其他功能及缺陷测试万年历其他功能及缺陷测试 主要测试万年历界面左下方今日日期及时间显示的正确性 界面右上方最小化窗口 按钮与关闭窗口按钮功能是否正确 以及界面空白区域是否会出现异常 2 4 12 4 1 功能性功能性 A 可以任意查询年份月份 星期及天数 B 在固定的那一天可以记录自己想记录的东西 C 显示当前的系统时间 2 4 22 4 2 易用性易用性 操作按钮提示信息正确性 一致性 可理解性 限制条件提示信息正确性 一致性 10 可理解性 输入方式可理解性 可以很方便用户 2 52 5 单元测试单元测试 2 5 1 JUnit 单元测试 单元测试 单元测试是对软件中的基本组成单位进行的测试 如一个模块 一个单元测试 单元测试是对软件中的基本组成单位进行的测试 如一个模块 一个 过程等等 它是软件动态测试的最基本的部分 也是最重要的部分之一 其目的是检验过程等等 它是软件动态测试的最基本的部分 也是最重要的部分之一 其目的是检验 软件基本组成单位的正确性 一个软件单元的正确性是相对于该单元的规约而言的 软件基本组成单位的正确性 一个软件单元的正确性是相对于该单元的规约而言的 测试代码 JUnit Test Case 测试结果图 11 2 5 22 5 2 单元测试测试用例单元测试测试用例 输入 年份月份 预期输出天数实际结果测试结果 200113131通过检验 200533131通过检验 200453131通过检验 202073131通过检验 199383131通过检验 1998103131通过检验 1999123131通过检验 200343030通过检验 201163030通过检验 199293030通过检验 1900113030通过检验 200422929通过检验 200922828通过检验 2 5 3 调试与评估调试与评估 主要通过 eclipse 中的插件 JUnite 进行测试 右键 Calender 项目 NEW other JUnite Test Case Package name 并选中 set up 和 teardown next 选中该项目中的类 的方法进行模块测试 测试结果通过 2 6 集成测试集成测试 2 6 1 集成测试概要集成测试概要 2 6 1 1 集成测试定义集成测试定义 此阶段测试基于单元测试的完成 主要目的检测系统是否达到需求对业务及 数据流的处理是否符合标准 检测系统对业务流处理是否存在逻辑不严谨及错 误 检测需求是否存在不合理的标准及要求 2 6 1 2 集成测试实现集成测试实现 12 集成测试主要以黑盒测试为主 通过等价类划分和边界值法进行测试 2 6 2 测试用例测试用例 边界值测试 主要测试年份在 1000 时点击上一年按钮能否提示错误信息或继续出现 999 年的日 历 年份在 9999 时点击下一年按钮能否提示错误信息或继续出现 10000 年的日历 在 年份文本框中输入不合法的年份能否提示错误信息 月份在 1 时点击上月能否显示上一 年份 12 月的日历 月份在 12 时点击下月能否显示下一年份 1 月的日历 测试方案如下 测试编 号 测试功 能 输入预期输出实际输出测试 结果 将年份改为 1001 然后 点击上一年 1000 年的日历1000 年的日历已通 过 年份在 1000 时点击上一 年 提示输入的年 份有误 999 年的日历未通 过 1上一年 按钮 年份在 999 时点击上一 年 提示输入的年 份有误 提示输入的年份 有误 未通 过 年份在 9999 时点击下一 年 提示输入的年 份有误 10000 年的日历未通 过 年份在 10000 时点击下 一年 提示输入的年 份有误 提示输入的年份 有误 已通 过 2下一年 按钮 年份在 9998 时点击下一 年 9999 年的日历9999 年的日历已通 过 3上月按 钮 月份在 1 月时点击上月年份变为上一 年 月份变为 12 年份变为上一年 月份变为 12 已通 过 4下月按 钮 月份在 12 月时点击下月年份变为下一 年 月份变为 1 年份变为下一年 月份变为 1 已通 过 键盘输入 1000 回车键1000 年日历1000 年日历已通 过 5年份文 本框 键盘输入 999 回车键提示输入的年 份有误 提示输入的年份 有误 已通 过 13 键盘输入 0999 回车键提示输入的年 份有误 0999 年的日历未通 过 键盘输入 0099 回车键提示输入的年 份有误 0099 年的日历未通 过 键盘输入 0001 回车键提示输入的年 份有误 0001 年的日历未通 过 键盘输入 0000 回车键提示输入的年 份有误 0000 年的日历未通 过 键盘输入 000 回车键提示输入的年 份有误 提示输入的年份 有误 已通 过 键盘输入 00 回车键提示输入的年 份有误 提示输入的年份 有误 已通 过 键盘输入 0 回车键提示输入的年 份有误 提示输入的年份 有误 已通 过 键盘输入一位负数 回 车键 提示输入的年 份有误 提示输入的年份 有误 已通 过 键盘输入两位负数 回 车键 提示输入的年 份有误 提示输入的年份 有误 已通 过 键盘输入三位负数 回 车键 提示输入的年 份有误 未知年份的日历未通 过 键盘输入四位负数 回 车键 提示输入的年 份有误 提示输入的年份 有误 已通 过 键盘任意输入一位字符 回车键 提示输入的年 份有误 提示输入的年份 有误 已通 过 键盘任意输入两位字符 回车键 提示输入的年 份有误 提示输入的年份 有误 已通 过 键盘任意输入三位字符 回车键 提示输入的年 份有误 提示输入的年份 有误 已通 过 键盘任意输入四位字符 回车键 提示输入的年 份有误 提示输入的年份 有误 已通 过 2 7 系统测试系统测试 14 2 7 1 系统测试概要系统测试概要 2 7 1 1 系统测试定义系统测试定义 用于核实用户与软件之间的交互 系统测试的目标是确保用户界面会通过测试 对象的功能来为用户提供相应的访问或浏览功能 2 7 1 2 系统测试实现系统测试实现 主要通过功能测试实现 2 7 2 测试用例测试用例 基本功能测试 主要测试万年历中日期选择中上一年 下一年 上月 下月以及年份选择文本框的 功能能否正常实现 即做相应的操作后 在日历显示面板处显示相应的日历 测试方案 如下 测试编号测试功能输入预期输出实际输出测试结果 1上一年按钮鼠标点击上一年份当 月日历 上一年份当 月日历 已通过 2下一年按钮鼠标点击下一年份当 月日历 下一年份当 月日历 已通过 3上月按钮鼠标点击当年上一月 日历 当年上一月 日历 已通过 4下月按钮鼠标点击当年下一月 日历 当年下一月 日历 已通过 5年份文本框键盘输入 4 位 0 到 9 的 数字 相应四位数 字的年份的 日历 相应四位数 字的年份的 日历 已通过 2 8 验收测试验收测试 2 8 1 验收测试内容验收测试内容 1 用户界面和可用性测试 2 兼容性测试 2 8 2 试测试用例试测试用例 1 用户界面和可用性测试 主要测试菜单栏处还原 最小化 最大化以及关闭四个按钮能否正常实现 15 其相应的功能 测试方案如下 测试编 号 测试功能输入预期输出实际输出结果 1还原窗口鼠标点击窗口还原为默认 大小 无效果未通过 2最小化窗口鼠标点击窗口最小化到任 务栏 窗口最小化到任 务栏 已通过 3最大化窗口鼠标点击窗口最大化到整 个屏幕 无效果未通过 主要测试日历显示是否正确 日期是否合法 以及单元格变 化测试 测试方案如下 测试编 号 测试功 能 输入预期输出实际输出测试 结果 2014 年 12 月2014 年 12 月的日历2014 年 12 月的日历已通 过 1日历正 确性 2015 年 1 月2015 年 1 月的日历2015 年 1 月的日历已通 过 2012 年 2 月2012 年 2 月 29 天2012 年 2 月 29 天已通 过 2014 年 2 月2014 年 2 月 28 天2014 年 2 月 28 天已通 过 2014 年 12 月2014 年 12 月 31 天2014 年 12 月 31 天已通 过 2日期合 法性 2014 年 11 月2014 年 11 月 30 天2014 年 11 月 30 天已通 过 3选择日 期正确 性 鼠标单击某一 日期 在界面的右上角显示 对应的日期 在界面的右上角显示 对应的日期 已通 过 16 鼠标单击空白 格 在界面的右上角显示 没有选择日期 在界面的右上角显示 没有选择日期 已通 过 鼠标双击某一 日期 无任何效果该单元格内容可修改未通 过 鼠标双击某一 日期 将内容 改为 50 确定后单元格内日期 恢复原来日期 在界面的右上角显示 当年当月的 50 号 未通 过 鼠标双击空白 格 无任何效果该单元格内容可修改未通 过 鼠标双击空白 格 输入 50 确定后单元格内 50 删除 单元格恢复为 空 在界面的右上角显示 当年当月的 50 号 未通 过 鼠标拖动单元 格的行分割线 单元格行宽度不变单元格行宽度不变已通 过 4单元格 大小变 化测试 鼠标拖动单元 格的列分割线 单元格列宽度不变单元格列宽度改变未通 过 万年历日志功能测试 主要测试日志编辑区日志的编辑功能 保存日志按钮与删除日志按钮功能的实现 测试方案如下 测试编 号 测试功 能 输入预期输出实际输出测试 结果 1日志的 编辑功 能 在编辑区输入一段文 字 在编辑区显示出 该段文字 在编辑区显示 出该段文字 已通 过 17 在编辑区输入一段文 字后 退格键 在文字结尾处删 除部分文字 在文字结尾处 删除部分文字 已通 过 在编辑区输入一段文 字后 鼠标点击文字 中间处 退格键 在文字中间处删 除部分文字 在文字中间处 删除部分文字 已通 过 不输入任何文字 退 格键 无任何效果无任何效果已通 过 选择日期 输入一段 日志 单击保存日志 该日期的日志已 保存 该日期的日志 已保存 已通 过 选中空白单元格 输 入一段日志 单击保 存日志 日志无法保存日志无法保存已通 过 2保存日 志 选择日期 不输入日 志 单击保存日志 无任何效果无任何效果已通 过 选定一个已有日志的 日期 单击删除日志 该日期的日志被 删除 该日期的日志 被删除 已通 过 选定一个没有日志的 日期 单击删除日志 没有找到日志文 件 没有找到日志 文件 已通 过 3删除日 志 选定一个空白单元格 单击删除日志 没有找到日志文 件 没有找到日志 文件 已通 过 18 2 兼容性测试 我们小组主要通过网上查找将 Java 代码通过 export 导出 转换成为 jar 包 再 将 jar 包转换成 exe 可运行文件形式 再 windows linux 等系统中运行 鉴于时间和运 行环境问题只是转换成了 exe 文件 在 windows 下有运行 却未在 Linux 系统中运行 在 jre 虚拟机里运行 没有 java 虚拟机的平台不可以运行 一次编译 可在配置 java 虚拟机的平台上运行 3 3 测试结果测试结果 3 13 1 bugbug 性质及模块分布性质及模块分布表表 对被测软件的总体评估 标识在测试中的缺陷 限制或约束 对软件和 系统性能的影响 包括未得到满足的标识 推荐的更正方案或方法 表 2 1 bug 类型及数量 Bug 性质 模块 A 类B 类C 类D 类总数 菜单功 能栏 00022 日期选 择 边 界值 01001 日历显 示面板 00202 日历日 志功能 00000 其他功 能及缺 00011 19 陷测试 软件测试合格须符合以下标准 表 2 1 测试合格标准 A 类错误B 类错误C 类错误D 类错误 无无 1 5 测试结果测试结果 Bug 类型及数量 3 23 2 改进建议改进建议 在整个系统测试执行期间 项目组开发人员能够提出的各种缺陷 在一 定程度上较好地保证了测试执行的效率以及测试最终期限 但是在整个软件 测试活动中还是暴露了一些问题 如 测试执行时间相对较少 测试通过标 准要求较低 细节性错误较多 测试时对管理平台不够熟悉 使用时效率偏 低 测试时对系统了解不够透彻 测试执行时存在理解偏差 导致提交无效 缺陷 通小组的协力合作 万年历系统如期完成并达到交付标准 建议 需求提出方可以再使用该系统的基础上 继续搜集用户的使用需 求反馈 并结合市场同类产品的优势 在今后的版本中不断补充并完善功能 20 在项目开始的时候应该制定编码标准 数据库标准 需求变更标准 开发和测试人员都严格按照标准进行 可以在后期减少因为开发 测试不一致而导致的问题 同时也可以降低沟通成本 发布版本的时候 正确布置测试环境 减少因为测试环境 测试数 据库数据的问题而出现的无效 bug 开发人员解决 bug 的时候 填写 bug 原因以及解决方式 方便 bug 的跟踪 开发人员在开发版本上发现 bug 可以通知测试人员 因为开发人员 发现的 bug 很有可能在测试版本上出现 而测试人员和开发人员的 思路不同 有可能测试人员没有发现该 bug 而且 这样可以保证发 现的 bug 都能够被跟踪 4 4 测试结论测试结论 1 测试执行是否充分 可以增加对安全性 可靠性和功能性等描述 2 对测试风险的控制措施和成效 3 测试目标是否完成 4 测试是否通过 4 14 1 功能功能 系统正确的实现了用户对日期的查询及行程日期记录的需求 小巧便捷 4 24 2 易用性易用性 现有系统实现了如下易用性 1 输入方式可理解性 2 输入限制的正确性 3 操作按钮提示信息正确性 一致性 可理解性 4 输入限制提示信息的正确性 可理解性 一致性 5 日期查询的易用性 21 现有系统存在如下易用性缺陷 1 界面排版不美观 2 输入缺少解释性说明 4 34 3 可靠性可靠性 现有系统的可靠性控制不够严密 很多控制是通过用户输入 错误的输入有可能引 起未知的错误 导致系统崩溃 现有系统的容错性不高 如果系统出现错误 无返回值 系统易崩溃 4 44 4 安全性安全性 由于未知的输入可能引起系统缓冲溢出 导致系统崩溃 5 5 心得体会心得体会 通过本次测试中华万年历系统项目 总结测试阶段的测试以及分析测试结果 基 本预期完成了系统 软件测试的真正意义在于发现错误 而不在于验证软件是正确的 再严密的测试也不能完全发现软件当中的错误 要确保软件基本可用 要加强软件的 响应的环节 还要增强软件的可移植性和兼容性 白盒测试来解决系统缓冲溢出 黑 盒测试来解决用户交互的bug 从而全方面的提高系统的可用性 健壮性 安全性 稳 定性 通过小组成员的通力合作 基本完成了软件功能 但是软件中还存在很多问题 需要进一步完善提高 比如java虚拟机的jre环境的打包自带 可以运行在不同平台上 增强可移植性 以后多加完善系统 深刻理解软件测试的重要性 必要性 22 6 6 实验代码实验代码 import java awt import java awt event ActionEvent import java awt event ActionListener import java awt event MouseEvent import java awt event MouseListener import java io BufferedReader import java io BufferedWriter import java io File import java io FileInputStream import java io FileNotFoundException import java io FileOutputStream import java io IOException import java io InputStreamReader import java io OutputStreamWriter import java sql Date import java text DateFormat import java text SimpleDateFormat import java util Calendar import java util Date import javax swing JButton import javax swing JDialog import javax swing JFrame import javax swing JLabel import javax swing JOptionPane import javax swing JPanel import javax swing JScrollPane import javax swing JTable import javax swing JTextArea import javax swing JTextField import javax swing table DefaultTableModel public class Five extends JFrame implements ActionListener MouseListener private Calendar cld Calendar getInstance 23 private String astr 星期一 星期二 星期三 星期四 星期五 星期六 星期日 private DefaultTableModel dtm new DefaultTableModel null astr private JTable table new JTable dtm 装日期的表格 private JScrollPane sp new JScrollPane table private JButton bLastYear new JButton 上一年 private JButton bNextYear new JButton 下一年 private JButton bLastMonth new JButton 上月 private JButton bNextMonth new JButton 下月 private JTextField jtfYear new JTextField 5 jtfYear 年份显示和输入文本框 private JTextField jtfMonth new JTextField 2 jtfMonth 月份显示文本框 private JPanel p1 new JPanel 装入控制日期按钮的模块 private JPanel p2 new JPanel private JPanel p3 new JPanel new BorderLayout private JPanel p4 new JPanel new GridLayout 2 1 private JPanel p5 new JPanel new BorderLayout private JButton bAdd new JButton 保存日志 private JButton bDel new JButton 删除日志 private JTextArea jta new JTextArea jta JTextArea private JScrollPane jsp new JScrollPane jta private JLabel l new JLabel 年份文本框中可直接键入要查找的年份 以提高查询效 率 private JLabel lt new JLabel private JLabel ld new JLabel private int lastTime public Five super 万年历 框架命名 this setDefaultCloseOperation JFrame EXIT ON CLOSE 窗口关闭函数 this getContentPane setLayout new BorderLayout 10 0 24 jta setLineWrap true table setGridColor Color GRAY 星期之间的网格线是灰色的 table setColumnSelectionAllowed true table setSelectionBackground Color BLACK 当选定某一天时这一天背景黑色 table setSelectionForeground Color GREEN 选定的日期字体是绿色的 table setBackground new Color 184 207 229 日期显示表格颜色浅蓝色 table setFont new Font 黑体 Font BOLD 24 日期数字字体格式 table setRowHeight 30 表格的高度 table addMouseListener this 鼠标监听器 jtfYear addActionListener this 可输入年份的文本框 为各个按钮添加监听函数 bAdd addActionListener this bDel addActionListener this bLastYear addActionListener this bNextYear addActionListener this bLastMonth addActionListener this bNextMonth addActionListener this 将按钮添加到 Jpanel 上 p1 add bLastYear p1 add jtfYear 年份输入文本框 p1 add bNextYear p1 add bLastMonth p1 add jtfMonth p1 add bNextMonth p2 add bAdd p2 add bDel p3 add jsp BorderLayout CENTER p3 add p2 BorderLayout SOUTH p3 add ld BorderLayout NORTH p4 add l p4 add lt p5 add p4 BorderLayout SOUTH p5 add sp BorderLayout CENTER p5 add p1 BorderLayout NORTH 25 this getContentPane add p5 BorderLayout CENTER this getContentPane add p3 BorderLayout EAST String strDate DateFormat getDateInstance format new Date split 获 得日期 cld set Integer parseInt strDate 0 Integer parseInt strDate 1 1 0 showCalendar Integer parseInt strDate 0 Integer parseInt strDate 1 cld jtfMonth setEditable false 设置月份的文本框为不可编辑 jtfYear setText strDate 0 jtfMonth setText strDate 1 this showTextArea strDate 2 ld setFont new Font 新宋体 Font BOLD 24 new Timer lt start this setBounds 200 200 600 320 this setResizable false this setVisible true public void showCalendar int localYear int localMonth Calendar cld int Days getDaysOfMonth localYear localMonth cld get Calendar DAY OF WEEK 2 Object ai new Object 7 lastTime 0 for int i cld get Calendar DAY OF WEEK 1 i Days i ai i 7 String valueOf i cld get Calendar DAY OF WEEK 2 if i 7 6 dtm addRow ai ai new Object 7 lastTime dtm addRow ai 26 public int getDaysOfMonth int year int Month 显示所选月份的天数 if Month 1 Month 3 Month 5 Month 7 Month 8 Month 10 Month 12 return 31 if Month 4 Month 6 Month 9 Month 11 return 30 if year 4 0 else return 28 public void actionPerformed ActionEvent e if e getSource jtfYear e getSource bLastYear e getSource bNextYear e getSource bLastMonth e getSource bNextMonth int m y try 控制输入的年份正确 异常控制 if jtfYear getText length 4 throw new NumberFormatException y Integer parseInt jtfYear getText m Integer parseInt jtfMonth getText 27 catch NumberFormatException ex JOptionPane showMessageDialog this 请输入 4 位 0 9 的数字 年 份有误 JOptionPane ERROR MESSAGE return ld setText 没有选择日期 for int i 0 i lastTime 1 i dtm removeRow 0 if e getSource bLastYear jtfYear setText String valueOf y if e getSource bNextYear jtfYear setText String valueOf y if e getSource bLastMonth if m 1 jtfYear setText String valueOf y m 12 jtfMonth setText String valueOf m else jtfMonth setText String valueOf m if e getSource bNextMonth if m 12 jtfYear setText String valueOf y m 1 jtfMonth setText String valueOf m else jtfMonth setText String valueOf m 28 cld set y m 1 0 showCalendar y m cld if e getSource bAdd int r table getSelectedRow int c table getSelectedColumn if ld getText equals 没有选择日期 try File file new File ld getText txt BufferedWriter bw new BufferedWriter new OutputStreamWriter new FileOutputStream file bw write jta getText bw close catch FileNotFoundException ex ex printStackTrace catch IOException ex ex printStack
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年甘肃省中共嘉峪关市委党校(市行政学院)招聘公益性岗位人员考前自测高频考点模拟试题及答案详解(典优)
- 2025年度国家电投校园招聘考前自测高频考点模拟试题及完整答案详解
- 2025年“才聚齐鲁成就未来”山东泰安市泰山财产保险股份有限公司河南分公司社会招聘4人模拟试卷带答案详解
- 2025年甘肃省临夏州东乡县融媒体中心招聘模拟试卷及答案详解(考点梳理)
- 商家代表发言稿(7篇)
- 2025年甘肃省天水天光半导体有限责任公司招聘18人考前自测高频考点模拟试题及完整答案详解1套
- 婚礼上的新郎致辞(27篇)
- 2025年河北邯郸馆陶县公开招聘(选聘)辅助性岗位工作人员13名考前自测高频考点模拟试题及答案详解一套
- 2025年哈尔滨市香电幼儿园招聘3人模拟试卷及答案详解参考
- 2025年线下演出市场复苏中的演出市场法律法规研究报告
- 农村处理矛盾纠纷课件
- 浙江龙泉南禹生物质燃料有限公司年产6万吨废弃竹木再生燃料颗粒生产线建设项目环评报告
- 公证在绿色金融中的应用-洞察阐释
- 药品发放登记管理制度
- 2025年眼镜定配工(高级)理论知识培训题库(含答案)
- 出租房合伙人合同协议书
- 2025年中考历史总复习《中国历史》八年级上册知识要点汇编
- 铁路信号设计与施工铁路信号电缆配线09课件
- 工程带班合同协议
- 电动工具智能制造工艺-全面剖析
- 毒麻药的应用与管理
评论
0/150
提交评论