译者的话 1
致谢 1
前言 1
简介 1
第一部分 使用Visual Studio 1
第一章 深入研究Visual J++和Visual Studio 1
1.1 理解Projects和Solutions 1
1.1.1 创建一个新工程 2
1.1.2 对工程和工程文件改名 3
1.1.3 打开现存工程 5
D.4.5 Null和null 6
D.4.1 没有C++指令 6
1.1.5 打开现存Java文件 6
1.1.4 在工程里创建新类 6
1.1.6 了解Visual Studio中的Toolbox和HTML 7
1.1.7 给Solutions添加工程 9
1.2 编译并运行一个系统 11
1.2.1 使用Visual J++环境 11
1.2.2 改变工程属性 12
1.2.3 编译Visual J++程序 16
1.2.4 运行Visual J++程序 17
1.3 定制工具栏 18
1.4 考查其他Visual Studio功能 20
小结 21
第二章 精通Visual J++调试器 22
2.1 掌握log10方法 22
2.2 进入调试器 24
2.3 使用调试器 25
2.3.1 单步执行程序 25
2.3.2 查看调试窗口信息 26
2.3.3 检查断点 28
2.4 结束调试 32
小结 39
第三章 使用Visual J++工具 40
3.1 用微软开发者网络获取帮助 40
3.2 使用可视化造型程序 42
3.3 使用Stress 43
3.4 使用AVIEdit 43
3.5 使用Visual J++命令行编译器 43
3.6 使用Visual J++应用程序浏览器 45
3.7 考查Internet Explorer 46
小结 47
4.1 理解WFC 48
第四章 掌握Windows基础类库与J/Direct 48
第二部分 Visual J++:功能齐备的Java 48
4.2 掌握WFC Java包 50
4.3 使用Visual J++设计程序和WFC工具箱 50
4.4 深入研究Designer绘图环境 51
4.5 研究WFC窗体和应用程序 53
4.6 浏览WFC组件 54
4.6.1 使用WFC Label类 54
4.6.2 使用WFC Button类 55
4.6.3 理解WFC事件 56
4.6.4 向WFC窗体添加WFC组件 56
28.4 使用ExcuteUpdate 57
28.5 创建一个简单的数据库程序 57
4.6.5 使用WFC复选框和按钮 58
4.6.6 使用单选按钮和组框 61
4.6.7 使用WFC Edit控件 64
4.6.8 使用WFC ListBoxes和ComboBoxes 66
4.6.9 使用复选列表框 68
4.6.10 使用DateTimePicker 71
4.6.11 利用WFC的标签条和面板给人留下深刻印象 73
小结 76
第五章 深入研究COM、DCOM、OLE和ActiveX 77
5.1 分析COM规范 77
5.2 了解组件软件所提供的内容 78
5.3 弄明白COM所提供的内容 78
5.4 领悟ActiveX和COM如何联系 80
5.5 深入研究交叉平台开发 80
5.6 使用DCOM规范 80
小结 81
第六章 掌握ActiveX编程 82
6.1 分析ActiveX 82
6.2 使用ActiveX和工具箱 83
6.3 使用OLE/COM对象浏览器 92
6.4 在Java程序中使用ActiveX 94
6.4.1 在自己的程序中使用ActiveX控件 94
6.4.2 在ActiveX模块中捕获错误 96
6.43 编写一个ActiveX Java程序 97
小结 99
7.1 生成COM 100
第七章 生成自己的ActiveX和COM组件 100
7.2 了解COM开发 101
7.3 创建ActiveX组件 108
小结 108
第八章 Web上更好的安全性 109
8.1 评论Web安全性问题 109
8.1.1 下载软件 110
8.1.2 深入研究Java的Sandbox(砂箱) 110
8.2 引入ActiveX 111
8.3 分析Internet Explorer安全性 112
8.3.1 证书安全性 112
8.3.2 验证代码(Authenticode) 113
8.3.3 Microsoft Wallet和Microsoft Profile Assistant 114
8.3.4 Internet区域和安全等级 118
小结 120
9.1.1 自省 121
第九章 JavaBeans 121
9.1 JavaBeans是什么 121
9.1.2 定制 122
9.1.3 持久性 122
9.1.4 事件、属性和方法 122
9.2 组件问题 122
9.2.1 局部/远程透明度 123
9.2.2 安全性 124
9.3.2 Bean开发能做到的和不能做到的 125
9.3.1 Marker类 125
9.2.3 最低要求 125
9.3 过渡的Bean规范 125
9.3.3 过渡的Bean示例 126
9.3.4 设计模式 129
9.3.5 事件 130
9.4 属性 133
9.4.2 布尔属性 134
9.4.1 通用属性 134
9.4.3 索引(Index)属性 135
9.5 属性改变通知 136
9.5.1 Bound属性 136
9.5.2 Constrained属性 142
9.6 持久性 144
9.7 JavaBeans定制 144
9.7.1 BeanInfo 145
9.7.2 定制 145
9.8 JAR文件 149
9.8.1 JAR实用程序 150
9.8.2 清单文件 151
9.9 作为ActiveX的JavaBeans 151
9.9.1 包装Bean 151
9.9.2 使用javareg实用程序 152
9.10 ActiveX作为JavaBean组件 154
9.10.1 包装ActiveX 154
9.10.2 jactivex实用程序 155
小结 160
第十章 打包和发行应用程序 161
10.1 利用适当的包进行包装 161
10.1.1 自释安装文件 163
10.1.2 高级属性 164
10.2 多工程打包和发行 167
10.3 了解Deployment Explorer 169
小结 171
第十一章 利用Visual J++进行动态HTML编程 173
11.1 解wfc.html包 173
11.2 DHTML编程 176
11.2.2 处理事件 177
11.2.1 使用DhElement类 177
11.2.3 使用容器 179
11.2.4 编写DHTML程序 179
11.3 处理样式 182
11.4 处理动态HTML表格 182
11.5 了解数据库DHTML编程 184
11.6 使用Server DHTML、Client HTML 和Active Server Pages 187
小结 189
12.1 什么是代表 191
第十二章 使用代表 191
12.2 如何对代表进行编程 192
12.2.1 说明代表 193
12.2.2 实例化代表 193
12.2.3 引发代表 193
12.2.4 编写代表体系 194
12.3 多重强制转换代表 198
12.4 代表与内部类和适配器类 199
12.6 代表与传统的函数指针 200
12.5 代表与接口 200
小结 201
12.7 Sun与Microsoft 201
第十三章 企业范围的开发 203
13.1 掌握DNA和企业范围的开发 203
13.2 使用Mircrosoft Visual SourceSafe 204
13.2.1 添加使用VSS Administrator的VSS用户 205
13.2.2 给VSS添加工程 206
13.2.3 从VSS中选出和在VSS中注册工程文件 207
13.3 为Microsoft Transaction Server进行编程 210
13.3.1 编写MTS Server组件 210
13.3.2 编写MTS客户程序 213
小结 215
第十四章 为什么要开发的Java纯代码 216
14.1 何时使用纯粹的Java代码 216
第三部分 利用Visual J++开发100%的纯Java代码 216
14.2 何时不使用纯Java 217
14.3 为什么Java仍然需要WFC 217
小结 218
第十五章 高级事件编程和图形开发 219
15.1 考查事件 219
15.1.1 捕获键盘事件 220
15.1.2 捕捉键盘调控键 221
15.1.3 Java先前版本中的键盘事件 222
15.1.4 捕捉鼠标单击 223
15.1.5 捕捉鼠标移动 224
15.1.6 Java先前版本中的鼠标事件 225
151.7 为事件编程 225
15.2.1 捕捉窗口事件 228
15.2 掌握图形程序设计 228
15.2.2 使用组件 229
15.2.3 了解面板 230
15.2.4 了解布局 231
15.3 编写你自己的图形程序 238
15.3.1 在图形Java程序中说明接听者 244
15.3.2 在图形Java程序中使用构造函数 245
15.3.3 考查组件和ActionListeners 248
15.3.4 使用鼠标事件 248
15.3.5 掌握画图函数和XOR图形模式 249
小结 251
第十六章 高级图形 252
16.1 编写图片按钮组件 252
16.1.1 使用图像 255
16.1.2 了解Canvas类 256
16.1.3 从URL或磁盘中检索图像 257
16.1.4 使用新的PictureButton组件 257
16.2 操纵字体 264
16.2.1 获得可以利用的字体 265
16.2.2 考查FontMetrics 267
16.3 掌握动画 269
16.3.2 理解系统资源和线程 270
16.3.1 考查所绘制的动画 270
16.3.3 发现Thread子类和方法 272
16.3.4 剖析可Runnable接口 273
16.3.5 使BouncingBall成为多线程类 275
16.3.6 解决闪烁问题 275
16.3.7 了解拱廓样式的游戏 282
16.4 在动画中使用位图 296
16.4.1 对Web页使用线程 300
16.4.2 显示图像 301
16.4.4 考查MediaTracker类 302
16.4.3 更新图像 302
小结 303
17.1 获取目录和文件信息 305
第十七章 掌握文件I/O 305
17.2 掌握文件输入和输出流 313
17.2.1 输入流 313
17.2.2 输出流 315
17.2.3 流的编程 317
17.2.4 随机存取I/O流 321
17.3 在Ballshot中记录高分 321
小结 330
第十八章 功能更强大的接口和多重继承 332
18.1 使用接口来实现多重继承 332
18.1.1 为什么需要多重继承 332
18.1.2 为什么要避免多重继承 333
18.1.3 模拟多重继承的接口 334
18.2 使用接口来返回值 339
小结 343
19.1 掌握数组 345
第十九章 有关Java数据结构的内部信息 345
19.2 引用数组元素 346
19.3 确定数组大小 346
19.4 理解多维数组 346
19.5 使用枚举 347
19.6 理解矢量 349
19.6.1 创建矢量 350
19.6.2 给矢量添加元素 351
19.6.3 搜索矢量 352
19.6.5 从矢量中删除元素 353
19.6.4 从矢量中检索元素 353
19.7 深入研究堆栈 354
19.8 使用链表和二叉树 355
19.8.1 遍历链表 360
19.8.2 给链表添加节点 361
19.83 从链表中删除节点 362
19.8.4 了解二叉树 363
19.8.5 遍历二叉树 371
19.8.6 在二叉树中插入节点 373
19.8.7 从二叉树中删除节点 374
小结 375
第二十章 更好的Web编程和网络操作 376
20.1 掌握URL 376
20.2 使用URLConnection类 380
20.3 从URL流中发送和接收信息 385
20.4 利用Web服务器和Web客户进行网络操作 388
20.4.1 使用数据报 390
20.4.2 使用套接字 396
小结 402
第二十一章 高级线程 403
21.1 继承Thread类 403
21.2 ThreadGroup 406
21.3 优先级、恢复和挂起 408
21.5 了解同步 409
21.4 发现后台进程 409
216 掌握线程信息 410
小结 412
第四部分 用Visual J++进行数据库开发 414
第二十二章 理解Visual J++的数据库访问 414
22.1.1 对象连接和嵌入数据库(OLE DB) 415
22.1 通用数据存取 415
22.1.3 开放式数据库连接性(ODBC) 416
22.1.2 ActiveX 数据对象(ADO) 416
22.1.4 使用ODBC数据源管理程序 417
22.1.5 掌握注册表 420
22.2 可视化数据库工具 423
22.2.2 SQL Query Designer(SQL查询设计者) 424
22.3 Application Wizard(应用程序向导) 424
22.2.1 Data View(数据视图) 424
小结 429
第二十三章 复杂的ActiveX数据对象 430
23.1 数据库代码编写的重要性 430
23.3.1 ADO结构 431
23.3 ADO编程 431
23.2 类库的重要性 431
23.3.2 ADO错误 432
23.3.3 ADO连接 432
23.3.4 Recordsets(记录集) 434
23.3.6 浏览数据集 435
23.3.5 检索记录集信息 435
23.3.7 利用Recordset函数操纵数据库 436
23.3.8 Fields(域) 437
23.3.9 数据类型 438
23.3.10 域属性 441
23.3.11 数据绑定 441
23.4 ADO类库 442
23.4.1 理解类库概念 443
23.4.4 绑定单选按钮 444
23.4.2 绑定单选按钮 444
23.4.3 显示单选按钮和数据库值 444
23.4.5 把单选按钮绑定到数据库 446
23.4.6 游览ADO类库编码 448
小结 460
第二十四章 容易的结构化查询语言 462
24.1 使用SELECT语句 462
24.1.1 理解*运算符 462
24.1.2 使用WHERE子句 463
24.1.3 使用ORDER BY子句 464
24.1.4 理解SQL域函数 464
24.1.5 使用GROUP BY子句 465
24.1.6 使用HAVING子句 466
24.1.7 使用连接操作 466
24.2 使用DELETE语句 467
24.3 使用UPDATE命令 467
24.1.8 使用SubSELECT操作 467
24.4 使用INSET命令 468
24.4.1 插入一行 468
24.4.2 使用嵌套的SELECT语句插入多行 469
24.5 与ActiveX数据对象一起使用SQL 469
小结 470
第二十五章 容易的数据库安全性和完整性 472
25.1 用户ID和口令 472
25.1.2 去除缺省安全性 473
25.2 访问安全性 473
25.1.1 组用户帐号 473
25.2.1 创建一个Access工作组信息文件 474
25.2.2 管理新的用户和组 476
25.3 Web数据库安全性的通用方法 483
25.4 SQL、ADO和安全性 483
小结 484
第二十六章 掌握Data Access Objects 485
26.1 了解数据库引擎 485
26.1.1 数据库引擎的初始化 485
26.1.2 组件 486
26.1.3 事务的提交和退回 488
2.6.1.4 DAO错误捕获 489
26.1.5 DAO DBEngine方法 490
26.2 掌握数据库 492
26.2.1 打开数据库 492
26.2.2 创建连接字符串 493
26.2.3 创建选项 494
26.2.4 关闭数据库 494
26.2.5 实现数据库组件 495
26.2.6 考查数据库的方法 496
26.3 使用表格和_TableDef接口 500
26.3.1 创建表格 500
26.3.3 检索一个现有的表格 502
26.3.2 删除表格 502
26.3.4 剖析表格字段 503
26.4 制作访问模块 507
26.4.1 使用访问模块 516
26.4.2 从数据库获取信息 520
26.5.2 检索信息 522
26.5 利用记录集操纵表格 522
26.5.1 打开一个记录集 522
26.5.3 插入和更新行 527
26.6 制作DAO表单 529
26.5.4 删除行 529
小结 538
27.1 考查RDO 539
27.2 掌握RDO连接 539
第二十七章 掌握远程数据对象 539
27.2.1 提交和退回事务 541
27.2.2 错误处理 543
27.3 获取表格信息 544
27.4 使用DRO结果集 545
27.4.1 使用SQL命令 545
27.4.2 没有结果集的SQL命令 546
27.4.3 带有结果集的SQL SELECT 547
27.4.4 评价栏信息 548
27.4.5 分析结果集内的移动 551
27.4.6 从结果集中检索数据 552
27.4.7 删除行 552
27.4.8 插入和更新行 553
27.5 编写RDO类库 556
27.6 编写RDO结果集库 565
小结 572
第二十八章 纯Java与JDBC 573
28.1 理解JDBC 573
28.2 连接到JDBC数据库 574
28.3 使用ResultSet 575
28.6 掌握JDBC类库 581
28.7 理解对新组件的需要 583
28.8.1 获取栏信息 585
28.8 理解ResultsetMetaData 585
28.8.2 使用数据类型 586
28.8.3 编写一个JDBC库 588
小结 601
第五部分 附录 602
附录A Java操作符和语言 602
附录B Visual J++中的保留字 609
附录C HTML参考 612
C.1 HTML结构和语法 612
C.3 HTML参考 614
C.2 HTML和Java 614
D.1 Java语言的结构 619
D.1.1 Java虚拟机(VM) 619
附录D 比较Visual J++和C++ 619
D.1.2 类、包和目录 620
D.2 包含Java和Visual J++的包 621
D.2.1 方法 622
D.2.2 域 625
D.2.3 修饰符 625
D.3 Java与C++的类似性 626
D.3.1 操作符 626
D.3.2 循环与判断语句 627
D.3.3 主方法 629
D.3.5 数组 630
D.3.4 方法重载 630
D.3.6 关键字 631
D.4 Java与C++之间的区别 631
D.4.2 指针、垃圾回收与free()和delete 633
D.4.3 数据类型 633
D.4.4 String类 633
D.4.6 Java异常 634
D.4.7 其他 637
D.5.1 开发Web小程序 638
D.5 用Java进行编程 638
D.5.2 使用HTML来运行小程序 639
附录E 单代码 641
E.1 为什么要使用单代码 641
E.2 字母表 642
E.2.1 不支持的语言 643
E.2.2 ASCII码 644
E.3 符号和标点 645
E.4 中、日韩辅助和统一“表意文字” 646
E.5 受限制使用 646
E.6 单代码和ASCII码转换 647
附录F 光盘的内容 648