目录 1
第1章 Java 2D基础知识 1
1.1 Java 2D图形模型 1
1.2 用户坐标空间和设备坐标空间 2
1.2.1 用户空间 2
1.2.2 设备空间 3
1.3 创建图形上下文 3
1.4 “Hello!Graphics World!”示例程序 4
1.5 修改图形属性 7
1.5.1 指定线条类型 8
1.5.2 指定填充模式 9
1.5.3 指定变换方式 10
1.5.4 指定裁剪形状 11
1.5.5 区域裁剪示例程序 12
1.5.6 指定绘图线索 16
1.5.7 指定合成类型 17
1.5.8 图形元素合成示例程序 18
第2章 颜色的处理 24
2.1 颜色和色彩空间 24
2.1.1 创建Color类的实例 25
2.1.2 已经支持的颜色 26
2.1.3 获取颜色成份 26
2.1.4 获取颜色和色彩空间 27
2.1.7 RGB模型与HSB颜色模型之间的转换 28
2.1.8 颜色演示程序示例 28
2.1.5 用色调、饱和度和亮度创建颜色 28
2.1.6 控制颜色的明暗度 28
2.2 用指定颜色模式绘图 34
2.2.1 使用梯度模式绘图 34
2.2.2 创建梯度绘图模式绘图对象 35
2.2.3 梯度绘图模式示例程序 35
2.2.4 使用纹理绘图模式 41
2.2.5 创建纹理绘图模式对象 41
2.2.6 纹理绘图模式程序示例 41
2.3 颜色管理 45
2.3.1 在输出设备上重新准确地产生所需要的颜色 45
3.1.1 边界数据的迭代对象 47
3.1.2 判断一个点在形状的内部还是外部 47
3.1 Shape接口 47
第3章 几何形状:直线和矩形 47
3.2 定义2D中的点 48
3.3 绘制2D中的直线 49
3.3.1 创建直线段 49
3.3.2 直线绘图示例程序 50
3.4 进一步使用直线 56
3.4.1 重新定义直线段 56
3.4.2 获取坐标或点 56
3.4.3 点到直线的距离 57
3.4.4 确定一点相对于一条直线的位置 57
3.4.5 获取边界 58
3.4.6 测试相交性 58
3.4.7 获取形状的轮廓对象 59
3.4.8 测试直线是否等同 59
3.5 绘制2D中的矩形 59
3.5.2 2D矩形示例程序 60
3.5.1 创建矩形实例 60
3.6 进一步使用矩形 65
3.6.1 重新定义矩形 65
3.6.2 获取矩形参数 65
3.6.3 矩形的并和交 65
3.6.4 确定一点相对于一个矩形的位置 66
3.6.5 在矩形上添加一个点 66
3.6.6 测试一点或矩形是否在当前矩形的内部 66
3.6.7 测试矩形的同等性 67
3.6.8 获取矩形的边界 67
3.6.9 测试矩形是否与一条直线相交 67
3.6.10 获取轮廓迭代值 67
3.7.1 创建圆角矩形 68
3.7 绘制圆角矩形 68
3.8 深入使用圆角矩形 69
3.8.1 重新定义圆角矩形 69
3.8.2 获取几何参数 69
3.8.3 获取边界 70
3.8.4 测试一点或矩形是否在当前矩形的内部 70
3.8.5 获取边界路径数据 70
3.8.6 测试指定矩形是否与某个矩形相交 70
3.8.7 圆角矩形绘图示例程序 70
第4章 几何形状:曲线、弧和椭圆 77
4.1 绘制二次曲线 77
4.1.1 创建二次曲线 77
4.2 深入使用二次曲线 78
4.2.1 绘制二次曲线 78
4.2.2 获取曲线的点或坐标 78
4.2.3 获取曲线的平直度索引值 79
4.2.5 曲线的划分 80
4.2.4 求二次曲线的根 80
4.2.6 获取边界和轮廓迭代对象 81
4.2.7 测试包含关系和相交关系 81
4.2.8 交互式二次曲线示例 82
4.3 绘制三次曲线 87
4.3.1 创建三次曲线 87
4.4 使用三次曲线操作 87
4.4.1 重新定义三次曲线 88
4.4.2 获取坐标 88
4.4.3 测试包含关系和相交关系 88
4.4.4 获取曲线的平直度索引值 89
4.4.5 求三次曲线的根 89
4.4.8 绘制三次曲线示例程序 90
4.4.6 三次曲线的划分 90
4.4.7 获取三次曲线的边界 90
4.5 绘制椭圆和圆 99
4.5.1 圆 99
4.5.2 创建椭圆 99
4.6 使用椭圆操作 100
4.6.1 重新定义椭圆 100
4.6.2 获取一个椭圆的坐标 100
4.6.3 测试包含关系和相交关系 100
4.6.4 获取椭圆的边界矩形 101
4.6.5 获取轮廓信息 101
4.6.6 获取边界矩形的中心 101
4.6.7 交互式椭圆示例程序 101
4.7 绘制开弧、弓形和饼形 108
4.7.1 创建开弧、弓形和饼形 109
4.7.2 交互式画弧示例程序 110
4.8 使用弧形操作 117
4.8.1 重新定义弧形 117
4.8.2 获取弧形的参数 118
4.8.3 测试包含关系和相交关系 119
4.8.4 获取弧形的边框 119
第5章 广义路径与复合形状 120
5.1 绘制广义路径 120
5.1.1 卷绕法则 120
5.1.2 构造一条广义路径 122
5.1.3 获取广义路径的边界 123
5.1.4 测试包含关系和相交关系 123
5.1.5 广义路径示例程序 123
5.2.1 创建Area类的实例 130
5.2 复合形状 130
5.2.2 应用构造性区域几何 131
5.2.3 测试形状类型 132
5.2.4 测试包含和相交关系 132
5.2.5 获取边界 132
5.2.6 获取一个形状的路径迭代(Path Iterator) 133
5.2.7 复合形状示例程序 133
第6章 平台字体与文本布局 140
6.1 使用字体 140
6.1.1 有关字体的术语 140
6.1.2 创建字体 142
6.1.3 获取各种字体名 142
6.1.4 获取平台字体 142
6.1.5 由给定字体导出新的字体 143
6.1.6 平台字体示例程序 144
6.2 文本布局 148
6.2.1 文本的定型、排列和定位 148
6.2.2 创建文本布局实例 149
6.2.3 文本修饰 149
6.2.4 文本布局示例程序 150
6.2.5 检测用户在文本上的输入 156
6.2.6 插入标记的显示和移动 157
6.2.7 获取度量信息 157
6.2.8 确定文本布局的方向 158
6.2.9 获取文本布局的边界 158
6.2.10 获取字符信息 158
6.2.11 通过高亮度文本进行选择 159
6.2.12 点击测试、插入标记和高亮度文本程序示例程序 160
6.3 使用文本和图形属性 164
6.3.1 使用文本属性 164
6.3.2 使用图形属性 165
6.3.3 使用文本和图形属性的程序示例 166
6.4 用自动换行符创建段落 170
6.4.1 文本换行示例程序 170
第7章 缓冲区图像 174
7.1 缓冲区图像剖析 174
7.1.1 获取数据、图像类型和色彩模式 175
7.1.2 获取缓冲区图像的大小 175
7.1.3 获取缓冲区图像中的一部分 176
7.1.4 使用光栅管理图像数据 176
7.2.1 创建缓冲区图像 177
7.2 使用缓冲区图像 177
7.1.5 色彩模型 177
7.2.2 在缓冲区图像上绘图 179
7.2.3 显示缓冲区图像 179
7.2.4 缓冲区图像示例程序 180
7.2.5 访问光栅/数据缓冲区示例程序 185
7.2.6 使用缓冲区图像 190
7.2.7 程序示例:缓冲区图像的复制 190
7.2.8 程序示例:使用缓冲区图像实现动画 193
第8章 图像处理 199
8.1 缓冲区图像和光栅图像操作 199
8.2 使用查找表的过滤操作 201
8.2.1 创建查找表 201
8.2.3 查找表示例程序 202
8.2.2 创建和使用查找表过滤器 202
8.3 使用重调过滤器 211
8.3.1 创建和使用重调过滤器 211
8.3.2 重调过滤器示例程序 212
8.4 使用颜色转换过滤器 218
8.4.1 创建和使用颜色转换过滤器 218
8.4.2 色彩转换过滤器示例程序 220
8.5 使用卷积过滤器 224
8.5.1 创建卷积核 225
8.5.2 创建和使用卷积过滤器 225
8.5.3 图像卷积变换示例程序 226
8.6 使用仿射变换过滤器 234
8.6.1 创建和使用仿射变换过滤器 234
8.6.2 仿射变换过滤器示例程序 235
8.7.1 创建和使用频带组合过滤器 242
8.7 使用频带组合过滤器 242
8.7.2 频带组合过滤器示例程序 243
第9章 打印 250
9.1 打印的机制 250
9.2 创建打印机图形上下文 251
9.3 使用页面格式 252
9.4 控制打印作业 253
9.4.1 单一格式打印示例 255
9.5 打印簿记(多重格式)文档 262
9.5.1 创建和使用簿记 263
9.5.2 将一个簿记赋予一个打印机作业控制对象 263
9.5.3 一个交互式绘图簿记示例程序 263
第10章 继承层次与API快速参考 273
10.1 继承层次关系图 273
10.1.2 包名称:java.awt.color 274
10.1.1 包名称:java.awt 274
10.1.3 包名称:java.awt.geom 275
10.1.4 包名称:java.awt.font 276
10.1.5 包名称:java.awt.image 277
10.1.6 包名称:java.awt.renderable 278
10.1.7 包名称:java.awt..print 278
10.2 重要的API快速参考 278
10.2.1 包名称:java.awt 279
10.2.2 包名称:java.awt.color 289
10.2.3 包名称:java.awt.geom 293
10.2.4 包名称:java.awt.font 312
10.2.5 包名称:java.awt.image 316
10.2.6 包名称:java.awt.print 321