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章 高级案例研究的更多相关文章

  1. 正在学习的Java大学教程

    推荐本书<Java大学教程> 看的人比较少,我也是多年不看书了,基于教程一般选国外的方法,从图书馆选了本书. 看了一半,感觉书的内容比较认真,对于基本的Java知识都算介绍全了,而且全书是 ...

  2. Java编程思想 第21章 并发

    这是在2013年的笔记整理.现在重新拿出来,放在网上,重新总结下. 两种基本的线程实现方式 以及中断 package thread; /** * * @author zjf * @create_tim ...

  3. Java编程思想——第17章 容器深入研究 读书笔记(三)

    七.队列 排队,先进先出. 除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: ad ...

  4. Java编程思想——第17章 容器深入研究(two)

    六.队列 排队,先进先出.除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: add ...

  5. 《Java大学教程》—第11章 案例研究--第1部分

    自测题:1.    图11-1的UML设计中各个类之间的关系.Hostel与TenantList是关联关系:TenantList和PaymentList与ObjectList是泛化关系.TenantL ...

  6. 《Java大学教程》—第12章 案例研究--第2部分

    本章就是上一章的延续,主要是用GUI实现了控制界面. 编程练习:代码附件Hostel.java1.    正确运行2.    Runhostel.java3.    searchButton

  7. 《Java大学教程》—第18章 高级图形编程

    自测题:1.    在图形应用程序中为用户提供选择的多种方式:P433下拉菜单(pull-down menu).弹出式菜单(pop-up menu).对话框窗口(dialogue window).单选 ...

  8. 《Java大学教程》—第23章 Java网络编程

    本章主要关注的是Java的几个应用网络编程的场景,对于网络编程没有太多深入介绍,而Java本来也没有多少针对网络编程的特性.虽然Java有个Applet的概念,但是真用这个的开发的场景其实不多. 23 ...

  9. 《Java大学教程》—第24章 Java的背景

    本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2    语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的 ...

随机推荐

  1. 第一册:lesson thirty five。

    原文: Our village . This is a photograph of our village. Our village is in  a valley. It is between to ...

  2. 水晶报表Crystal 无效索引

    这几天项目用到水晶报表做报表打印,没有前辈指导,都自己摸着石头过河,真是痛并快乐着.其实水晶报表还是挺好用的,对初学者也并不难(我就是初学者).昨天遇到一个问题:无效索引 ……开始以为是报表设置的问题 ...

  3. spring_05装配bean

    一.前言 <bean id="user1" scope="singleton" init-method="myInit" destro ...

  4. List集合遍历整理

    遍历List集合的三种方式 0. 首先准备测试数据 List<String> list = new ArrayList<String>(); list.add("Ja ...

  5. CSS用法总结(持续更新)

    一.html,body{height:100%} 解决了容器高度不足(容器高度由子元素高度决定,而%按照父元素的百分比),无法用%布局页面的问题 把html和body的高度设置为浏览器高度,此时会出现 ...

  6. wamp本地可以访问,远程无法访问,报错:client denied by server configuration

    出错原因:配置文件限制非本机访问 对策:修改httpd.conf,选择合适的模式,一般局域网环境的话,可以完全放开,使用 <Directory "..../wamp/www" ...

  7. View在测量时的MeasureSpec由什么决定?

    我们都知道系统要确定View的大小,首先得先获得MeasureSpec,再通过MeasureSpec来决定View的大小. MeasureSpec(32为int值)由两部分组成: SpecMode(高 ...

  8. react-fetch数据发送请求

    在一个项目中,数据的请求发送数据是最为重要的,不可能我们的数据都是自己进行编写的 在react中官方推荐使用的方法是fetch.当然它里面也可以使用vue中的axios请求数据,jQuery的$.aj ...

  9. git上传中的排除的配置文件, git实际的操作代码;

    git上传中的排除的配置文件: git实际的操作 在主目录建立.gitignore文件并输入以下保存: *.class #package file *.war *.ear #kdiff3 ignore ...

  10. JHipster生成单体架构的应用示例

    本文演示如何用JHipster生成一个单体架构风格的应用. 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用名:app1 实体名:role 主机IP:192.168.2 ...