第1章 Java简介 1
1.1 程序设计的发展过程 1
1.1.1 并不辉煌的过去 1
1.1.2 救星的到来 3
1.1.3 问题回顾 4
1.2 Internet和WWW 4
1.2.1 WWW 5
1.2.2 HTML 6
1.2.3 问题回顾 7
1.3 Java的诞生 7
1.3.1 智能烤面包机 7
1.3.2 相得益彰的Web和Java 8
1.3.3 应用程序和Java Applet 8
1.3.4 问题回顾 11
1.4 Java综述 11
1.4.1 语法 11
1.4.2 语言特点 12
1.4.3 对象和类 12
1.4.4 继承 14
1.4.5 类库 14
1.4.6 问题回顾 15
1.5 实验 15
1.6 在线资料 17
1.7 本章小结 18
1.8 习题 18
1.9 问题答案 20
第2章 applet 22
2.1 Applet类 22
2.1.1 学习简单的applet 22
2.1.2 问题回顾 24
2.2 方法、继承和覆载 24
2.2.1 Java方法 24
2.2.2 继承和覆载 26
2.2.3 问题回顾 27
2.3 图形编程 27
2.3.1 Graphics类 27
2.3.2 使用Graphics类 28
2.3.3 Color类 30
2.3.4 Font类 30
2.3.5 位置和尺寸类:Point、Dimension和Rectangle 31
2.3.6 问题回顾 33
2.4 实验 33
2.4.1 第1步:绘图101 33
2.4.2 第2步:通过复杂化使程序更加清晰 35
2.4.3 第3步:生成自己的方法 37
2.4.4 问题回顾 39
2.5 本章小结 39
2.6 习题 40
2.7 问题答案 43
第3章 widget 45
3.1 Component 45
3.1.1 Component类的图形方法 45
3.1.2 问题回顾 46
3.2 文本widget 47
3.2.1 Label类 47
3.2.2 TextComponent类 47
3.2.3 TextField类 48
3.2.4 使用TextField类 49
3.2.5 TextArea类 50
3.2.6 使用TextArea类 51
3.2.7 问题回顾 52
3.3 动态widget 52
3.3.1 Button类 53
3.3.2 Checkbox类 53
3.3.3 CheckboxGroup类 54
3.3.4 Choice类 55
3.3.5 List类 56
3.3.6 问题回顾 57
3.4 实验 57
3.5 本章小结 60
3.6 习题 61
3.7 问题答案 62
第4章 可视化设计 64
4.1 Container类 64
4.1.1 Container组织方法 64
4.1.2 包含层次关系 66
4.1.3 Panel类 66
4.1.4 问题回顾 67
4.2 Layout类 67
4.2.1 Container布局方法 67
4.2.2 FlowLayout类 67
4.2.3 BorderLayout类 68
4.2.4 GridLayout类 70
4.2.5 不存在Layout的类 71
4.2.6 问题回顾 72
4.3 其他Container和细节 73
4.3.1 Canvas类 73
4.3.2 Window类 74
4.3.3 Frame类 75
4.3.4 Dialog类 77
4.3.5 题回顾 81
4.4 Menu类 81
4.4.1 MenuComponent类 82
4.4.2 MenuBar类 82
4.4.3 Menu类 83
4.4.4 MenuItem类 83
4.4.5 CheckBoxMenuItem类 84
4.4.6 PopupMenu类 84
4.4.7 Menu举例 84
4.4.8 问题回顾 85
4.5 实验 85
4.5.1 设计Lablet 86
4.5.2 Lablet代码 87
4.6 本章小结 89
4.7 习题 90
4.8 问题答案 93
第5章 Java语言基础 94
5.1 基本类型 94
5.1.1 整数 94
5.1.2 浮点数 95
5.1.3 字符 95
5.1.4 boolean类型 96
5.1.5 问题回顾 96
5.2 标识符、关键字和变量 96
5.2.1 变量 96
5.2.2 作用范围 97
5.2.3 修饰符static和final 99
5.2.4 包 100
5.2.5 访问修饰符 100
5.2.6 private访问权限 101
5.2.7 package访问权限 102
5.2.8 protected访问权限 102
5.2.9 public访问权限 103
5.2.10 问题回顾 103
5.3 操作符和表达式 103
5.3.1 数字操作符 103
5.3.2 Math类 105
5.3.3 位操作符 107
5.3.4 boolean操作符 109
5.3.5 复杂的boolean表达式 111
5.3.6 问题回顾 113
5.4 赋值操作符和语句 113
5.4.1 赋值操作符 113
5.4.2 类类型变量和基本类型变量 115
5.4.3 混和操作符 117
5.4.4 语句 117
5.4.5 问题回顾 118
5.5 实验 119
5.5.1 设计Lablet第一步 119
5.5.2 设计Lablet第二步 120
5.5.3 Lablet代码 120
5.6 本章小结 124
5.7 习题 126
5.8 问题答案 131
第6章 事件和动作 132
6.1 更多Java程序设计知识 132
6.1.1 if语句 132
6.1.2 if语句的常见问题 135
6.1.3 switch语句 137
6.1.4 抽象类和接口 138
6.1.5 问题回顾 141
6.2 事件驱动的程序设计 141
6.2.1 委托模型 141
6.2.2 问题回顾 144
6.3 AWTEvent层次结构 144
6.3.1 上层Event类 145
6.3.2 动作事件 145
6.3.3 调整事件和滚动条 146
6.3.4 输入事件 146
6.3.5 项目事件 147
6.3.6 键盘事件 148
6.3.7 鼠标事件 148
6.3.8 文本事件 149
6.3.9 问题回顾 149
6.4 监听器 149
6.4.1 监听器接口 149
6.4.2 ActionListener 150
6.4.3 ItemListener 150
6.4.4 Key Listener 150
6.4.5 MouseListener 150
6.4.6 MouseMotionListener 151
6.4.7 TextListener 151
6.4.8 适配器 151
6.4.9 问题回顾 151
6.5 实验 151
6.5.1 GalaEvent Lablet 152
6.5.2 SketchPad Lablet 154
6.5.3 问题回顾 160
6.6 本章小结 160
6.7 习题 162
6.8 问题答案 165
第7章 系统化程序设计 167
7.1 方法综述 167
7.1.1 方法签名 167
7.1.2 方法调用 168
7.1.3 参数 169
7.1.4 数值参数和引用参数 171
7.1.5 问题回顾 172
7.2 第1步:规范 172
7.2.1 规范 173
7.2.2 问题回顾 174
7.3 第2步:确定使用的类 174
7.3.1 布局 174
7.3.2 填充细节 177
7.3.3 问题回顾 178
7.4 第3步:确定所使用的方法 178
7.4.1 顶级分解 179
7.4.2 再次填充细节 180
7.4.3 问题回顾 182
7.5 第4步:后续 182
7.5.1 新类 184
7.5.2 整理 191
7.5.3 问题回顾 192
7.6 ATM applet 192
7.7 实验 197
7.8 本章小结 198
7.9 习题 199
7.10 问题答案 203
第8章 集合 204
8.1 循环 204
8.1.1 do循环 205
8.1.2 while循环 205
8.1.3 for循环 206
8.1.4 循环常见问题 207
8.1.5 问题回顾 208
8.2 数组 208
8.2.1 声明数组 209
8.2.2 访问数组元素 209
8.2.3 数组和循环 210
8.2.4 多维数组 212
8.2.5 异类数组 215
8.2.6 问题回顾 216
8.3 排序 216
8.3.1 选择排序 217
8.3.2 插入排序 218
8.3.3 快速排序 220
8.3.4 问题回顾 223
8.4 向量 223
8.4.1 Vector类 223
8.4.2 查看器 224
8.4.3 修改器 224
8.4.4 何时使用向量 225
8.4.5 问题回顾 226
8.5 字符串 226
8.5.1 String类 226
8.5.2 访问和比较 227
8.5.3 生成器 228
8.5.4 使用字符串进行转换 229
8.5.5 问题回顾 230
8.6 实验 230
8.6.1 设计Lablet 231
8.6.2 研究Lablet 231
8.6.3 问题回顾 236
8.7 本章小结 236
8.8 习题 239
8.9 问题答案 246
第9章 异常 247
9.1 异常 247
9.1.1 Exception子类 247
9.1.2 抛出异常的方法 249
9.1.3 问题回顾 251
9.2 异常处理 251
9.2.1 try和catch 251
9.2.2 异常传播方式 252
9.2.3 抛出异常 253
9.2.4 预防性程序设计 255
9.2.5 finally 257
9.2.6 问题回顾 257
9.3 制定自己的异常 258
9.4 实验 259
9.4.1 设计Lablet 259
9.4.2 研究OrderPlease 260
9.4.3 问题回顾 265
9.5 本章小结 266
9.6 习题 267
9.7 问题答案 269
第10章 输入/输出 270
10.1 流 270
10.1.1 InputStream和OutputStream类 271
10.1.2 DataInputStream和DataOutputStream类 272
10.1.3 问题回顾 274
10.2 文件I/O 274
10.2.1 FileInputStream和FileOutputStream类 275
10.2.2 基本类型的I/O操作 275
10.2.3 类类型的I/O操作 277
10.2.4 报头(header) 278
10.2.5 问题回顾 280
10.3 高级文件的I/O操作 280
10.3.1 过滤文件名 280
10.3.2 File类 281
10.3.3 FileDialog类 283
10.3.4 问题回顾 285
10.4 安全、applet和应用程序 285
10.4.1 Java安全 286
10.4.2 applet安全 286
10.4.3 Java应用程序的安全 287
10.4.4 问题回顾 288
10.5 实验 289
10.5.1 设计Lablet 289
10.5.2 介绍WordPro 290
10.5.3 File命令 292
10.5.4 Edit命令 294
10.5.5 结束程序 295
10.5.6 问题回顾 295
10.6 本章小结 295
10.7 习题 296
10.8 问题答案 298
第11章 线程 299
11.1 线程执行过程 299
11.1.1 Thread类基础 301
11.1.2 Runnable接口 303
11.1.3 对线程分组 304
11.1.4 问题回顾 306
11.2 线程和applet 306
11.3 同步线程 308
11.3.1 同步化和互斥 309
11.3.2 wait()和notify()方法 310
11.3.3 优先级 313
11.3.4 问题回顾 314
11.4 时间类 314
11.4.1 Date类 315
11.4.2 Calendar类 315
11.4.3 GregorianCalendar类 316
11.4.4 问题回顾 317
11.5 实验 317
11.5.1 设计Lablet第一步:TickTock用户手册 317
11.5.2 设计Lablet第二步:满足规范的要求 318
11.5.3 applet 319
11.5.4 Timer类 321
11.5.5 问题回顾 324
11.6 本章小结 325
11.7 习题 326
11.8 问题答案 328
第12章 信息空间中的applet 330
12.1 环境设置 330
12.1.1 URL 330
12.1.2 再次访问Applet类 332
12.1.3 AppletContext接口 334
12.1.4 Applet参数和Applet属性 334
12.1.5 问题回顾 335
12.2 光、照相机…… 335
12.2.1 音频剪辑 336
12.2.2 图像基础 336
12.2.3 屏外绘图 339
12.2.4 图像处理必备知识 340
12.2.5 后台图像处理 343
12.2.6 图像过滤器 345
12.2.7 问题回顾 347
12.3 让图像动起来 347
12.3.1 预备知识:在Canvas上进行绘图 347
12.3.2 动画前言 349
12.3.3 载入图像:MediaTracker类 350
12.3.4 动画Ⅰ:启动 351
12.3.5 动画Ⅱ:更好的设计 352
12.3.6 动画Ⅲ:移动飞船 354
12.3.7 动画Ⅳ:剪切 356
12.3.8 问题回顾 357
12.4 实验 357
12.4.1 设计Lablet 357
12.4.2 研究GraphicButtoner applet 358
12.4.3 研究GraphicButton类 362
12.4.4 研究AnimatedButton类 366
12.4.5 最后研究HTML 368
12.5 本章小结 368
12.6 习题 370
12.7 问题答案 372