《Java核心技术》笔记 第11章 Swing用户界面组件
本章首先介绍Swing的底层架构。然后会介绍Swing中最常用的用户界面组件,如文本框、单选按钮和菜单等。接下来,你会了解如何使用布局管理器排列这些组件。最后将介绍如何在Swing中实现对话框。 本章涵盖基本的Swing组件。高级Swing组件将在卷II第11章介绍。 11.1 Swing和MVC设计模式 思考以下构成用户界面组件的各个组成部分: 内容(如按钮是否按下、文本框中的文...
本章首先介绍Swing的底层架构。然后会介绍Swing中最常用的用户界面组件,如文本框、单选按钮和菜单等。接下来,你会了解如何使用布局管理器排列这些组件。最后将介绍如何在Swing中实现对话框。 本章涵盖基本的Swing组件。高级Swing组件将在卷II第11章介绍。 11.1 Swing和MVC设计模式 思考以下构成用户界面组件的各个组成部分: 内容(如按钮是否按下、文本框中的文...
1.引言 C++20引入的范围(Ranges)库是对STL算法库的扩展,使算法和迭代器可以组合,从而使其功能更加强大。范围库为函数式编程提供了更好的支持。 例如,下面的示例程序输出一个整数数组中所有偶数的平方。 #include <iostream> #include <ranges> int main() { int arr[] = {0, 1, 2,...
在本章和下一章中,将讨论使用Swing工具包实现用户界面编程的基础知识。 10.1 Java用户界面工具包简史 AWT (Abstract Window Toolkit) IFC (Internet Foundation Classes) Swing:Java官方GUI工具包,支持跨平台 JavaFX 注释:Swing不是完全替代AWT,而是构建在AWT架构之上。 ...
本章将介绍如何利用Java标准库帮助我们实现程序设计所需的传统数据结构(data structure)。 9.1 Java集合框架 这一节将介绍Java集合框架(Java collections framework)的基本设计,展示如何使用,并解释一些颇具争议的特性背后的考虑。 注: 集合(collection)即一组元素,相当于C++中的容器。 官方文档: ...
泛型类和泛型方法有类型参数,这使得它们可以准确地描述用特定类型实例化时会发生什么。在有泛型类之前,程序员必须使用Object编写适用于多种类型的代码,这既繁琐又不安全。 在本章中,你将了解泛型编程的优势及挑战。 8.1 为何使用泛型编程 泛型编程(generic programming)意味着编写可用于多种不同类型的对象的代码。ArrayList就是一个例子(见5.3节)。 8.1.1...
对于异常情况,Java使用一种称为异常处理(exception handling)的错误捕获机制。本章的第1部分将介绍Java的异常。 在测试期间,需要运行大量检查以确保程序的正确性。但是这些检查可能非常耗时,在测试完成后也不必保留。本章的第2部分将介绍如何使用断言来选择性地启用检查。 当程序出现错误时,你可能希望记录出现的问题,以便日后分析。本章的第3部分将讨论标准Java日志框架。 ...
1.简介 Mockito是一个用于Java单元测试的mock框架,用于创建模拟对象(mock object)来替代真实对象,帮助开发者隔离外部依赖,从而专注于单元测试的逻辑。 官方网站:https://site.mockito.org/ 官方文档:https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/M...
1.简介 JUnit是一个Java单元测试框架,用于编写和运行可重复的自动化测试。 官方网站:https://junit.org/junit4/ 官方文档:https://github.com/junit-team/junit4/wiki API文档:https://junit.org/junit4/javadoc/latest/index.html 2.快速入门 http...
本章将介绍几种常用的高级技术:接口、lambda表达式、内部类和代理。 6.1 接口 6.1.1 接口的概念 接口(interface)用来描述类应该做什么(提供哪些方法),而不指定具体应该如何做(如何实现这些方法)。 通常,某个服务的提供者会说:“如果你的类符合某个特定接口,我就会履行这项服务。”下面给出一个具体的示例。Arrays类的sort()方法承诺对对象数组进行排序,但有一个条...
本章将学习面向对象程序设计的另一个基本概念:继承(inheritance)。继承的基本思想是可以基于已有的类创建新的类。继承已有的类就是复用(继承)这些类的方法和字段,而且可以添加新的方法和字段,以满足新的需求。这是Java编程中的一项核心技术。 5.1 类、超类和子类 回到上一章讨论的Employee类。假设经理的待遇与普通员工存在差异,经理除了领取薪水还能得到奖金。这种情形就需要使用继...