《Java大学教程》—第21章 高级案例研究
21.3 需求:P510
用例模型(use case model):用例图(use case diagram)、用例(use case)、行为说明(behaviour specification)、活动者(actor)、角色(role)。
用例图用于记录系统中不同用户的角色,以及他们需要系统提供的服务。
系统的用户被称为活动者,用户需要的服务被称为用例。
21.4 设计:P511
(-)private、 (+)public
组合(composition):实心菱形。
包含(containment):空心菱形。
例:机场由许多跑道组成,没有跑道就不能称为机场;机场也包含许多飞机,但是没有飞机仍然可以称为机场。
21.4.1 枚举图
一个类型包含许多可能的数值,每个数值都有一个有意义的名称,该名称称为枚举类型。
21.5 实现:
对应用程序的用户隐藏实现级别的异常,抛出通用的应用程序的异常。
21.6 测试:场景测试
一个用例中的不同的路径被称为不同的场景(scenario)。在集成过程中,需要确保测试每个用例中的每个场景,这个过程称为场景测试(scenario testing)。
21.7 GUI+JTabbedPane
JTabbedPane类提供了一个用于组织用户界面的Swing组件,可以包含多个带有标签的卡片,每张卡片可以是任意一个组件,也可以把许多组件关联到一个标签。
setToolTipText()方法:可以为Swing组件添加工具提示。
setMnemonic()方法:可以为Swing组件创建键盘快捷键。
21.10 定制对话框窗口
通过对JDialog类继承可以定制对话框窗口。
自测题:
1. 为用例开发场景。
用例“注册机场飞机”:
* 注册成功。航空交通控制员提交飞机唯一的航班编号和它的起飞城市记录进入机场的飞机。如果该航班编码没有被机场注册,则注册成功。
* 注册失败。航空交通控制员提交飞机唯一的航班编号和它的起飞城市记录进入机场的飞机。如果该航班编码已经被机场注册,则软件将报出错误信号。
2. (-)private, (+)public
3. 包含与组合的区别:
组合(composition):实心菱形。被组合的类必须在组合类中存在。
包含(containment):空心菱形。被组合的类不是必须在组合类中存在。
例:机场由许多跑道组成,没有跑道就不能称为机场;机场也包含许多飞机,但是没有飞机仍然可以称为机场。
4. a)P513 图21-3
b) public enum Light{ RED, AMBER, GREEN};
c) Light doorLight;
d) switch(doorLight){
case RED: System.out.println("I am away");break;
case AMBER: System.out.println("I am busy");break;
case GREEN: System.out.println("I am free");break;
}
5. JTabbedPane组件的优点:通过不同的卡片组合和显示组件,可以将界面上的部分组件隐藏,直到需要的时候打开,减少屏幕的混乱。
注:与CardLayout管理器相似,但是编码更加简单。
6. 添加工具提示:P542
jbStop.setToolTipText("This button stops the game);
7. 创建快捷键:P543
viewMenu.setMnemonic('V');
编程练习:代码附件
只提供了些基础类,其他先挖坑在那里。
《Java大学教程》—第21章 高级案例研究的更多相关文章
- 正在学习的Java大学教程
推荐本书<Java大学教程> 看的人比较少,我也是多年不看书了,基于教程一般选国外的方法,从图书馆选了本书. 看了一半,感觉书的内容比较认真,对于基本的Java知识都算介绍全了,而且全书是 ...
- Java编程思想 第21章 并发
这是在2013年的笔记整理.现在重新拿出来,放在网上,重新总结下. 两种基本的线程实现方式 以及中断 package thread; /** * * @author zjf * @create_tim ...
- Java编程思想——第17章 容器深入研究 读书笔记(三)
七.队列 排队,先进先出. 除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: ad ...
- Java编程思想——第17章 容器深入研究(two)
六.队列 排队,先进先出.除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: add ...
- 《Java大学教程》—第11章 案例研究--第1部分
自测题:1. 图11-1的UML设计中各个类之间的关系.Hostel与TenantList是关联关系:TenantList和PaymentList与ObjectList是泛化关系.TenantL ...
- 《Java大学教程》—第12章 案例研究--第2部分
本章就是上一章的延续,主要是用GUI实现了控制界面. 编程练习:代码附件Hostel.java1. 正确运行2. Runhostel.java3. searchButton
- 《Java大学教程》—第18章 高级图形编程
自测题:1. 在图形应用程序中为用户提供选择的多种方式:P433下拉菜单(pull-down menu).弹出式菜单(pop-up menu).对话框窗口(dialogue window).单选 ...
- 《Java大学教程》—第23章 Java网络编程
本章主要关注的是Java的几个应用网络编程的场景,对于网络编程没有太多深入介绍,而Java本来也没有多少针对网络编程的特性.虽然Java有个Applet的概念,但是真用这个的开发的场景其实不多. 23 ...
- 《Java大学教程》—第24章 Java的背景
本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2 语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的 ...
随机推荐
- [转]Docker(三):Dockerfile 命令详解
本文转自:https://blog.csdn.net/ityouknow/article/details/79600406 上一篇文章Docker(二):Dockerfile 使用介绍介绍了 Dock ...
- PHP之单例模式
之前记得有写过PHP的几种这模式.这几天看群里在问单列模式,觉得还是有必要再深入写清楚下..其实单例模式很好理解滴哦 单例模式顾名思义,就是只有一个实例,作为对象的创建模式,单例模式确保某一个类只有一 ...
- 【Java每日一题】20170306
20170303问题解析请点击今日问题下方的“[Java每日一题]20170306”查看(问题解析在公众号首发,公众号ID:weknow619) package Mar2017; public cla ...
- JavaScript 笔记(一)
Number 1.2345e3=1.2345*1000 NaN//not a num 无法计算结果 Infinity //无限大 数组 var arr=[1,2,'hello'] 下标从0开始 对象 ...
- 微服务创建——Ubuntu搭建GitLab
Ubuntu呢,用的国产麒麟,可能对于用习惯了Windows操作系统的人来说使用UKylin会很难受吧,开发的人倒没什么,不过就是命令行的问题 那么,怎么搭建一个完整的GitLab呢,一步步来操作吧, ...
- JS函数浅析(一)
1.万物皆为对象 提起函数首先要知道对象,而对象又是js数据类型中的一种,所以我们从头开始. 1)javascript数据类型有哪些? 原始数据类型:number,undefined ...
- TCP/UDP 协议
传输层建立端口到端口的通信. 网络层的 ip 为我们区分子网,以太网层的 mac 帮我们找到主机.然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,那么我们通过ip和m ...
- BZOJ4407: 于神之怒加强版(莫比乌斯反演 线性筛)
Description 给下N,M,K.求 感觉好迷茫啊,很多变换看的一脸懵逼却又不知道去哪里学.一道题做一上午也是没谁了,, 首先按照套路反演化到最后应该是这个式子 $$ans = \sum_{d ...
- Jedis 简单案例
POM 依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> < ...
- arcgis在折点处打断并建立网络分析(最短路径等问题)
目的:GIS网络分析用于对段路径等问题.这里仅仅讲述如何建立网络分析. 网络建立前必须满足以下条件 1.要素文件在节点处打断(本文下面会叙述) 2.要素文件在地理数据库里的数据集里(一般是这样) 3. ...