前言 1
第1章 Java的本质 1
1.1 深入讲解 1
1.2 即时解决方案 6
1.2.1 获得和安装Java 6
1.2.2 Java1.1的新特点 7
1.2.3 Java1.1中废弃了什么 9
1.2.4 Java2的新特点 9
1.2.5 Java2废弃了什么 10
1.2.6 编写代码: 创建代码文件 11
1.2.7 编写代码: 了解Java保留字 11
1.2.8 编写代码: 创建应用程序 13
1.2.9 编译代码 15
1.2.10 编译代码: 使用命令行选项 16
1.2.11 编译代码: 检查废弃的方法 18
1.2.12 运行代码 18
1.2.13 运行代码: 使用命令行选项 21
1.2.14 基本技巧: 注释代码 22
1.2.15 基本技巧: 导入Java包和类 24
1.2.16 基本技巧: 使用CLASSPATH找到Java类 27
1.2.17 创建applet 29
1.2.18 运行applet 30
1.2.19 创建窗口化应用程序 31
1.2.20 运行窗口化应用程序 32
1.2.21 设计Java程序 33
1.2.22 发布Java程序 34
第2章 变量、数组和字符串 36
2.1 深入讲解 37
2.1.1 变量 37
2.1.2 数组 39
2.1.3 字符串 42
2.2 即时解决方案 43
2.2.1 可以使用什么数据类型 43
2.2.2 创建整数直接量 44
2.2.3 创建浮点数直接量 45
2.2.4 创建布尔值直接量 46
2.2.5 创建字符直接量 47
2.2.6 创建字符串直接量 48
2.2.7 声明整数变量 49
2.2.8 声明浮点数变量 50
2.2.9 声明字符变量 51
2.2.10 声明布尔值变量 52
2.2.11 初始化变量 53
2.2.12 数据类型转换 55
2.2.13 声明一维数组 57
2.2.14 创建一维数组 58
2.2.15 初始化一维数组 59
2.2.16 声明多维数组 59
2.2.17 创建多维数组 60
2.2.18 初始化多维数组 62
2.2.19 创建不规则多维数组 63
2.2.21 String类 64
2.2.20 获取数组长度 64
2.2.22 创建字符串 67
2.2.23 获取字符串长度 70
2.2.24 字符串连接 70
2.2.25 获取字符和子字符串 71
2.2.26 搜索和替换字符串 73
2.2.27 在字符串中改变大小写 74
2.2.28 格式化字符串中的数字 74
2.2.29 StringBuffer类 75
2.2.30 创建StringBuffer 77
2.2.31 获取和设置StringBuffer的长度和容量 78
2.2.32 在StringBuffer中设置字符 79
2.2.33 使用StringBuffer附加和插入 79
2.2.34 在StringBuffer中删除文本 80
2.2.35 在StringBuffer中替换文本 80
第3章 操作符、条件和循环 82
3.1 深入讲解 82
3.1.1 操作符 83
3.1.2 条件 84
3.1.3 循环 85
3.2 即时解决方案 86
3.2.1 操作符优先级别 86
3.2.2 递增和递减:++和-- 88
3.2.3 一元Not:~和! 89
3.2.4 乘和除:*和/ 90
3.2.5 模数:% 91
3.2.6 加和减:+和- 91
3.2.7 移位操作符:>>、>>>和<< 91
3.2.8 关系操作符:>、>=、<、==和!= 92
3.2.9 位和位逻辑And、Xor和Or: 、^和| 93
3.2.10 逻辑 和|| 95
3.2.11 if-then-else操作符:?: 97
3.2.12 赋值操作符:=和[操作符]= 98
3.2.13 使用Math类 100
3.2.14 字符串比较 101
3.2.15 if语句 102
3.2.16 switch语句 105
3.2.17 while循环 107
3.2.18 do-while循环 110
3.2.19 for循环 111
3.2.20 循环嵌套 114
3.2.21 使用break语句 115
3.2.22 使用continue语句 116
4.1 深入讲解 118
第4章 面向对象编程 118
4.1.1 类 119
4.1.2 对象 120
4.1.3 数据成员 120
4.1.4 方法 121
4.1.5 继承 122
4.2 即时解决方案 122
4.2.1 声明和创建对象 122
4.2.2 声明和定义类 125
4.2.3 创建实例变量 128
4.2.4 设置变量访问 129
4.2.5 创建类变量 130
4.2.6 创建方法 132
4.2.7 设置方法访问 133
4.2.8 向方法传递参数 135
4.2.9 传递给main的命令行参数 137
4.2.10 从方法返回值 137
4.2.11 创建类方法 139
4.2.12 创建数据访问方法 140
4.2.13 创建构造器 142
4.2.14 向构造器传递参数 142
4.2.15 完整的类范例 143
4.2.16 了解变量范围 145
4.2.17 使用递归 147
4.2.18 垃圾收集和内存管理 148
4.2.19 垃圾收集和finalize方法 150
4.2.20 方法重载 151
4.2.21 构造器重载 152
4.2.22 向方法传递对象 154
4.2.23 向方法传递数组 156
4.2.24 使用this关键字 157
4.2.25 从方法返回对象 158
4.2.26 从方法返回数组 159
第5章 继承、内部类和接口 161
5.1 深入讲解 161
5.1.1 为什么继承 162
5.1.2 什么是接口 163
5.1.3 什么是内部类 164
5.2 即时解决方案 165
5.2.1 创建子类 165
5.2.2 访问说明符和继承 166
5.2.3 调用超类构造器 169
5.2.4 创建多层继承 172
5.2.5 处理多层构造器 174
5.2.6 覆盖方法 176
5.2.7 访问被覆盖的成员 177
5.2.8 和子类对象一起使用超类变量 179
5.2.9 动态方法调度 181
5.2.10 创建抽象类 183
5.2.11 使用final终止覆盖 185
5.2.12 使用final终止继承 186
5.2.13 使用final创建常量 187
5.2.14 is-a和has-a关系 188
5.2.15 Java对象类 189
5.2.16 为进行多重继承使用接口 192
5.2.17 创建内部类 195
5.2.18 创建匿名内部类 196
第6章 applet、应用程序和事件处理 197
6.1 深入讲解 197
6.1.1 Abstract Windowing Toolkit 198
6.1.2 applet 199
6.1.3 应用程序 200
6.2 即时解决方案 201
6.2.1 使用Abstract Windowing Toolkit 201
6.1.4 处理事件 201
6.2.2 创建applet 207
6.2.3 使用
6.2.4 处理非Java浏览器 211
6.2.5 在代码中嵌入
6.2.6 使用init、start、stop、destory、paint和update方法 212
6.2.8 使用Java浏览器插件 214
6.2.7 在applet中绘制图形 214
6.2.9 在applet中读取参数 216
6.2.10 在浏览器中使用Java控制台 217
6.2.11 向applet添加控件: 文本域 218
6.2.12 向applet添加控件: 按钮 219
6.2.13 事件处理 220
6.2.14 使用适配器类 227
6.2.15 使用匿名内部适配器类 228
6.2.16 创建窗口化的应用程序 229
6.2.17 当应用程序窗口关闭时退出应用程序 232
6.2.18 可以作为applet运行的应用程序 233
第7章 AWT: 文本域、按钮、复选框、单选按钮和布局 235
7.1 深入讲解 235
7.1.1 文本域 235
7.1.2 按钮 235
7.1.3 复选框 236
7.1.4 单选按钮 236
7.1.5 布局 236
7.2 即时解决方案 237
7.2.1 使用文本域 237
7.2.2 使用标签 239
7.2.3 使用按钮 241
7.2.4 使用复选框 244
7.2.5 使用单选按钮 248
7.2.6 流布局 250
7.2.7 网格布局 253
7.2.8 使用板 255
7.2.9 边框布局 257
7.2.10 卡片布局 260
7.2.11 网格包装布局 263
7.2.12 使用镶边和填充 267
7.2.13 创建你自己的布局管理器 269
8.1.2 选择 271
8.1.1 列表 271
8.1 深入讲解 271
第8章 AWT: 列表、选择框、文本区域、滚动条和滚动板 271
8.1.3 文本区域 272
8.1.4 滚动条 272
8.1.5 滚动板 272
8.2 即时解决方案 272
8.2.1 使用文本区域 272
8.2.2 在文本区域中替换文本 275
8.2.3 查找和选择文本区域中的文本 276
8.2.4 使用列表 278
8.2.5 使用多项选择列表 282
8.2.6 使用选择控件 285
8.2.7 使用滚动条 289
8.2.8 滚动条和边框布局 294
8.2.9 使用滚动板 296
第9章 AWT: 图形、图像、文本和字体 300
9.1 深入讲解 300
9.1.1 图形 300
9.1.2 图像 300
9.1.3 文本和字体 301
9.1.4 键盘和鼠标 301
9.2 即时解决方案 301
9.2.1 使用鼠标 301
9.2.2 使用键盘 304
9.2.3 使用字体 308
9.2.4 使用图像 314
9.2.5 重新设置图像的尺寸 315
9.2.6 绘制图形 317
9.2.7 选择颜色 326
9.2.8 使用画布 328
9.2.9 使用ImageObserver接口 330
9.2.10 使用MediaTracker类 332
9.2.11 逐像素操作: PixelGrabber和MemoryImageSource类 334
9.2.12 将图像加亮 337
9.2.13 将图像转换为灰度图 339
9.2.14 使图像凸起 341
第10章 AWT: 窗口、菜单和对话框 343
10.1 深入讲解 343
10.1.1 窗口 343
10.1.2 菜单 344
10.1.3 对话框 344
10.2 即时解决方案 344
10.2.1 创建框架窗口 344
10.2.2 显示和隐藏窗口 348
10.2.3 处理窗口事件 349
10.2.4 在关闭时自动隐藏窗口 351
10.2.5 使用Window类 352
10.2.6 创建菜单 356
10.2.7 创建MenuBar对象 358
10.2.8 创建Menu对象 360
10.2.9 创建MenuItem对象 361
10.2.10 处理Menu事件 363
10.2.11 更多的菜单选项 364
10.2.12 添加菜单分隔线 367
10.2.13 禁用菜单项 368
10.2.14 向菜单添加复选框 369
10.2.15 创建子菜单 371
10.2.16 弹出式菜单 373
10.2.17 对话框 375
10.2.18 文件对话框 379
11.1 深入讲解 383
11.1.1 Java基本类 383
第11章 Swing: applet、应用程序和可插入的外观 383
11.1.2 Swing 384
11.1.3 重型和轻量组件 385
11.1.4 Swing功能 386
11.1.5 使用板进行图形编程 387
11.1.6 Model View Controller体系结构 387
11.2 即时解决方案 388
11.2.1 操作Swing 388
11.2.2 准备创建AWT applet 390
11.2.3 理解根板 392
11.2.4 理解层板 394
11.2.5 理解内容板 395
11.2.6 创建Swing applet 396
11.2.7 创建Swing应用程序 399
11.2.8 关闭JFrame窗口 401
11.2.9 选择组件边框 403
11.2.10 设置可插入的外观 406
11.2.11 为组件设置可插入的外观 410
12.1 深入讲解 413
第12章 Swing: 文本域、按钮、切换按钮、复选框和单选按钮 413
12.1.2 按钮 414
12.1.3 切换按钮 414
12.1.4 复选框和单选按钮 414
12.2 即时解决方案 414
12.2.1 使用标签 414
12.2.2 使用图像图标 417
12.2.3 在标签中使用图像 417
12.2.4 使用文本域 419
12.2.5 抽象按钮: Swing按钮的基础 421
12.2.6 使用按钮 424
12.2.7 在按钮中显示图像 426
12.2.8 使用翻滚器和禁用按钮 427
12.2.9 默认按钮和助记符 429
12.1.1 标签和文本域 431
12.2.10 使用切换按钮 431
12.2.11 创建切换按钮组 433
12.2.12 使用复选框 435
12.2.13 使用单选按钮 437
12.2.14 使用复选框和单选按钮图像 439
12.2.15 得到和设置复选框和单选按钮的状态 441
第13章 Swing: 视口、滚动、滑动条和列表 444
13.1 深入讲解 444
13.1.1 视口 444
13.1.5 列表 445
13.2.1 处理视口 445
13.2 即时解决方案 445
13.1.3 滑动条 445
13.1.4 滚动条 445
13.1.2 滚动板 445
13.2.2 创建滚动板 450
13.2.3 创建滚动板标题和边框 454
13.2.4 滚动图像 455
13.2.5 创建滑动条 456
13.2.6 填充滑动条 460
13.2.7 绘制滑动条定位标志 461
13.2.8 绘制滑动条标签 462
13.2.9 设置滑动条区间 462
13.2.10 创建滚动条 464
13.2.11 创建列表 468
13.2.12 处理多项列表选择 472
13.2.13 在列表中显示图像 474
13.2.14 创建定制的列表模型 475
13.2.15 创建定制的列表单元格表现器 476
13.2.16 在列表中处理双击 477
第14章 组合框、进度条、工具提示、分隔线和选择器 479
14.1 深入讲解 479
14.1.1 组合框 479
14.2.1 创建组合框 480
14.2 即时解决方案 480
14.1.5 分隔线 480
14.1.4 工具提示 480
14.1.3 选择器 480
14.1.2 进度条 480
14.2.2 处理组合框选择事件 484
14.2.3 创建可编辑的组合框 486
14.2.4 向组合框中添加图像 488
14.2.5 创建组合框模型 489
14.2.7 创建进度条 490
14.2.6 创建组合框定制表现器 490
14.2.8 更新进度条 494
14.2.9 处理进度条事件 495
14.2.10 创建工具提示 497
14.2.11 创建分隔线 499
14.2.12 自动重设分隔线的尺寸 501
14.2.13 创建颜色选择器 502
14.2.14 创建文件选择器 505
14.2.15 文件选择器过滤器 511
15.1 深入讲解 515
15.1.1 层板 515
第15章 Swing: 层板、选项卡板、分割板和布局 515
15.1.2 选项卡板 516
15.1.3 分割板 516
15.1.4 布局 516
15.2 即时解决方案 516
15.2.1 理解Swing组件和ZOrder 516
15.2.2 使Swing组件透明 518
15.2.3 使用层板 520
15.2.4 使用选项卡板 523
15.2.5 指定选项卡板中的选项卡位置 527
15.2.6 使用分割板 529
15.2.7 使分割板成为可单击扩展的 533
15.2.8 设置分割板方向 535
15.2.9 设置分割线尺寸 536
15.2.10 使用框布局管理器 538
15.2.11 使用Box类 540
15.2.12 使用重叠布局管理器 544
16.1.2 工具条 547
16.1.1 菜单 547
第16章 Swing: 菜单和工具条 547
16.1 深入讲解 547
16.2 即时解决方案 548
16.2.1 创建菜单条 548
16.2.2 创建菜单 549
16.2.3 创建菜单项 551
16.2.4 创建基本的菜单系统 553
16.2.5 向菜单中添加图像 556
16.2.6 创建复选框菜单项 558
16.2.7 创建单选按钮菜单项 561
16.2.8 创建子菜单 563
16.2.9 创建加速键和助记符 565
16.2.10 在运行时启用/禁用菜单项和改变标题 567
16.2.11 在运行时添加和删除菜单项 570
16.2.12 向菜单中添加按钮和其他控件 572
16.2.13 创建弹出菜单 574
16.2.14 创建工具条 577
16.2.15 向工具条中添加组合框和其他控件 580
第17章 Swing: 窗口、桌面板、内部框架和对话框 583
17.1 深入讲解 583
17.1.1 窗口 583
17.1.2 对话框 584
17.2 即时解决方案 584
17.2.1 创建窗口 584
17.2.2 创建框架窗口 587
17.2.3 创建桌面板 588
17.2.4 创建内部框架 590
17.2.5 使用JOptionPane创建对话框 596
17.2.6 创建选项板确认对话框 601
17.2.7 创建选项板消息对话框 602
17.2.8 创建选项板文本域输入对话框 604
17.2.9 创建选项板组合框输入对话框 606
17.2.10 创建选项板内部框架对话框 608
17.2.11 使用JDialog创建对话框 609
17.2.12 从使用JDialog创建的对话框得到输入 612
第18章 Swing: 表格和树 615
18.1 深入讲解 615
18.1.1 表格 615
18.1.2 树 615
18.2 即时解决方案 616
18.2.1 创建表格 616
18.2.2 在运行时向表格中添加行和列 626
18.2.3 向表格中添加控件和图像 629
18.2.4 创建树 631
18.2.5 向树中添加数据 637
18.2.6 处理树事件 639
18.2.7 编辑树节点 640
第19章 Swing: 文本组件 643
19.1 深入讲解 643
19.1.1 文本域 643
19.1.2 口令域 643
19.2.1 创建Swing文本组件: JText Component类 644
19.2 即时解决方案 644
19.1.4 编辑器板 644
19.1.5 文本板 644
19.1.3 文本区域 644
19.2.2 创建文本域 647
19.2.3 设置文本域对齐方式 647
19.2.4 滚动文本域 650
19.2.5 创建口令域 651
19.2.6 创建文本区域 654
19.2.7 创建编辑器板 656
19.2.8 在编辑器板中使用HTML 660
19.2.9 向编辑器板中添加超链接 662
19.2.10 在编辑器板中使用RTF文件 664
19.2.11 创建文本板 666
19.2.12 在文本板中插入图像和控件 668
19.2.13 设置文本板文本属性 669
第20章 I/O流和文件 673
20.1 深入讲解 673
20.2.1 使用File类 674
20.2 即时解决方案 674
20.2.2 使用InputStream 677
20.2.3 使用OutputStream 678
20.2.4 使用FileInputStream 678
20.2.5 使用FileOutputStream 680
20.2.6 使用ByteArrayInputStream 682
20.2.7 使用ByteArrayOutputStream 683
20.2.8 使用BufferedInputStream 685
20.2.9 使用BufferedOutputStream 687
20.2.10 使用RandomAccessFile 687
20.2.11 使用Reader 689
20.2.12 使用Writer 690
20.2.13 键盘输入: 使用InputStreamReader 690
20.2.14 使用OutputStreamWriter 691
20.2.15 使用FileReader 692
20.2.16 使用FileWriter 693
20.2.17 使用CharArrayReader 694
20.2.18 使用CharArrayWriter 695
20.2.19 使用BufferedReader 696
20.2.20 使用BufferedWriter 698
20.2.21 使用PushbackReader 698
20.2.22 使用StreamTokenizer 699
20.2.23 使用串行化 700
20.2.24 使用剪贴板 704
20.2.25 使用打印机 705
21.1 深入讲解 706
第21章 集合 706
21.1.1 集合接口 707
21.1.2 集合类 707
21.1.3 映射类 707
21.1.4 映射类 707
21.2 即时解决方案 708
21.2.1 使用Collection接口 708
21.2.2 使用List接口 708
21.2.3 使用Set接口 709
21.2.5 使用AbstractCollection类 710
21.2.4 使用SortedSet接口 710
21.2.6 使用AbstractList类 711
21.2.7 使用AbstractSequentialList类 712
21.2.8 使用ArrayList类 712
21.2.9 使用LinkedList类 714
21.2.10 使用HashSet类 716
21.2.11 使用TreeSet类 717
21.2.12 使用Comparator接口 719
21.2.13 使用Iterator接口 720
21.2.14 使用ListIterator接口 721
21.2.15 使用AbstractMap类 723
21.2.16 使用HashMap类 723
21.2.17 使用TreeMap类 725
21.2.18 使用Arrays类 726
21.2.19 使用Enumeration接口 729
21.2.20 使用Vector类 729
21.2.21 使用Stack类 732
21.2.22 使用Dictionary类 733
21.2.23 使用Hashtable类 734
21.2.24 使用Properties类 735
第22章 多线程编程和动画 738
22.1 深入讲解 738
22.2 即时解决方案 740
22.2.1 得到主线程 740
22.2.2 命名线程 740
22.2.4 用Runnable接口创建线程 741
22.2.3 暂停线程 741
22.2.5 用Thread类创建线程 743
22.2.6 创建多线程 746
22.2.7 等待线程 748
22.2.8 检查线程是否是活跃的 749
22.2.9 设置线程优先级以及停止线程 751
22.2.10 为什么要使用同步 753
22.2.11 同步代码块 755
22.2.12 同步方法 756
22.2.13 线程之间的通信 758
22.2.14 挂起和恢复线程 760
22.2.15 用线程创建图形动画 762
22.2.16 消除图形动画中的闪烁 764
22.2.17 挂起和恢复图形动画 766
22.2.18 双缓冲 768
第23章 创建包、接口、JAR文件和Java bean 770
23.1 深入讲解 770
23.1.1 创建包和接口 770
23.1.3 Java bean 771
23.1.2 JAR文件 771
23.2 即时解决方案 772
23.2.1 创建包 772
23.2.2 创建具有子包的包 773
23.2.3 创建接口 774
23.2.4 部分实现接口 775
23.2.5 创建JAR文件 776
23.2.9 在代码中读取JAR文件 778
23.2.8 更新JAR文件 778
23.2.6 得到JAR文件的内容 778
23.2.7 从JAR文件中提取文件 778
23.2.10 使用javac从JAR文件中得到类 781
23.2.11 让applet从JAR文件中得到类 782
23.2.12 使用Java bean设计程序 783
23.2.13 创建使用Java bean的applet 786
23.2.14 创建Java bean 787
23.2.15 创建bean货单文件 789
23.2.16 创建bean JAR文件 789
23.2.17 使用新的bean 790
23.2.18 在bean中添加控件 790
23.2.19 给bean添加属性 793
23.2.20 创建绑定属性 800
23.2.21 给bean添加方法 800
23.2.22 给bean添加图标 802
24.1 深入讲解 804
24.1.1 异常处理 804
第24章 异常处理、调试和连网 804
24.1.2 调试 805
24.1.3 连网 805
24.2 即时解决方案 806
24.2.1 捕获异常 806
24.2.2 嵌套try语句 809
24.2.3 抛出异常 809
24.2.4 创建定制的异常 810
24.2.5 调试Java程序 811
24.2.6 设置applet安全策略 814
24.2.7 使用URL对象 817
24.2.8 使用URLConnection对象 818
24.2.9 创建和使用套接字 821
24.2.10 创建TCP客户和服务器 823
24.2.11 从Java提交HTML表单 825
24.2.12 使用Java数据库连接(JDBC) 827
24.2.13 创建Java servlet 835