第1篇 JBuilder 2005基础知识篇 1
1.1 功能介绍 2
第1章 JBuilder 2005概述 2
1.2 新增特性 4
1.3.1 不同版本的差异 5
1.3 程序安装 5
1.3.2 硬件要求 6
1.3.3 安装步骤 7
1.4 理解安装目录 11
1.5.1 如何获取帮助 12
1.5 使用帮助 12
1.5.2 使用Help Viewer 13
1.6.1 光标错位 14
1.6 常见问题解决之道 14
1.7 总结 17
1.6.2 汉字乱码 17
2.1.1 Java发展史 18
2.1 Java简介 18
第2章 Java语言基础 18
2.1.3 关于Java的FAQ 19
2.1.2 Java的特点 19
2.2.1 注释 20
2.2 Java语言基础 20
2.2.2 Java中的关键字 21
2.2.3 基本数据类型 22
2.2.4 基本数据类型的转换 23
2.2.5 字面值 24
2.2.6 数组 25
2.2.7 运算符和表达式 27
2.3 流程控制 32
2.3.1 选择流程控制语句 33
2.3.2 循环语句及跳转 34
2.4 类和对象 37
2.4.1 类的一般结构 38
2.4.2 类的包 39
2.4.3 类的值域和方法 40
2.4.4 方法的重载和覆盖 42
2.4.5 类的构造函数 43
2.4.6 类的继承 44
2.4.7 类和接口 46
2.5 异常处理 47
2.5.2 发生异常时的流程控制 48
2.5.1 Java中的异常结构 48
2.5.3 抛出异常 50
2.6.2 提高扩展性和性能 51
2.6.1 简易开发 51
2.6 JDK 5.0快速进阶 51
2.6.4 新的JVM整形API 52
2.6.3 监视和管理 52
2.6.5 改进诊断能力 53
2.6.6 元数据Metadata 54
2.6.7 泛型 55
2.6.9 增强型for循环 56
2.6.8 自动装/拆箱 56
2.6.13 格式化的输入 57
2.6.12 格式化的输出 57
2.6.10 枚举化的类型 57
2.6.11 静态引入 57
2.6.16 其他的一些新特性 58
2.6.15 并行工具 58
2.6.14 不定参数 58
2.7 总结 59
3.1 集成开发环境 60
第3章 JBuilder 2005集成开发环境 60
3.1.1 菜单条 61
3.1.2 工具条 62
3.1.3 工程窗格 63
3.1.4 结构窗格 65
3.1.5 内容窗格 66
3.1.6 信息窗格 67
3.1.7 状态条 68
3.1.8 调整工作区效果 69
3.2.1 何为工程 70
3.2 工程及工程组 70
3.2.2 用工程向导创建一个工程 71
3.2.3 工程属性 73
3.2.4 工程组 74
3.3.1 类库的结构 76
3.3 维护类库 76
3.3.2 维护JBuilder类库 77
3.3.3 维护工程扩展类库 81
3.4.1 配置一个新的JDK 82
3.4 设置JDK 82
3.4.2 在工程中使用JDK 5.0 84
3.5 总结 85
4.1 编辑器界面组成 87
第4章 编辑器——高效代码开发之利器 87
4.2.1 设置编辑器字体 88
4.2 编辑器的一般设置 88
4.2.3 动作触发设置 89
4.2.2 调整编辑器的显示效果 89
4.3.2 配置快捷键 91
4.3.1 快捷键模式 91
4.3 快捷键 91
4.3.3 常用快捷键 93
4.4.2 块选择 96
4.4.1 一般性选择 96
4.4 代码选择 96
4.5 智能拷贝 97
4.6 查找 98
4.7.2 文本书签 100
4.7.1 数字书签 100
4.7 用书签进行快速导航和定位 100
4.8 CodeInsight 101
4.7.3 Todo标识 101
4.9.1 常用代码模板 103
4.9 代码模板 103
4.9.3 代码模板的设置 105
4.9.2 使用代码模板 105
4.10 同步代码编辑 107
4.11 ErrorInsight 108
4.12.1 ScopeInsight 109
4.12 辅助显示支持 109
4.12.2 代码折叠 110
4.13.1 排版格式化的内容 111
4.13 代码排版格式化 111
4.13.2 设置和调用 112
4.14 总结 113
5.2 使用代码审查 114
5.1 何谓代码审查 114
第5章 代码审查 114
5.3.2 应通过类名引用静态成员 116
5.3.1 “switch”必须带一个default语句 116
5.3 代码风格审查 116
5.3.3 避免复杂晦涩的代码 117
5.3.4 尽量使用赋值运算符 118
5.3.5 其他代码风格的审查 119
5.4.1 避免命名覆盖 120
5.4 声明审查 120
5.4.4 代码排列及先后顺序 121
5.4.3 有关子类覆盖的审查 121
5.4.2 使用适合的修饰符 121
5.5.3 避免过于简单的变量名 122
5.5.2 建立和国际接轨的包名 122
5.5 命名风格 122
5.5.1 取消不良命名习惯 122
5.6.1 聚焦switch 123
5.6 潜在错误审查 123
5.6.2 避免浮点值等值逻辑判断 125
5.7.1 将布尔变量和布尔值比较 126
5.7 各种画蛇添足的审查 126
5.6.3 用括号清晰化复杂的表达式 126
5.6.4 字符串比较 126
5.7.3 多余的接口修饰符 127
5.7.2 无用的成员 127
5.8.1 无作为的表达式 128
5.8 其他 128
5.7.4 不必要的强制类型转换 128
5.7.5 多余的import包引入 128
5.8.2 流程控制中存在不可至的语句 129
5.9 总结 130
5.8.3 无用的流程标签 130
6.1.2 编译操作及编译器 131
6.1.1 关于代码编译 131
第6章 编译、运行、调试、优化及打包 131
6.1 编译程序 131
6.1.3 编译器的设置 133
6.1.4 编译的错误信息 134
6.2.1 邮件收发程序 135
6.2 运行程序 135
6.2.2 运行程序文件 138
6.2.3 设置运行配置信息 139
6.3.2 调试界面 142
6.3.1 程序的错误类型 142
6.3 调试程序 142
6.3.3 调试Sender.java的运行期错误 144
6.3.4 调试Sender.java的逻辑错误 146
6.3.5 查看程序加载的类及类的静态变量 148
6.3.6 多线程调试 149
6.4 Optimizeit代码优化工具 151
6.4.1 Profiler 152
6.4.2 Thread Debugger 154
6.4.3 Code Coverage 156
6.5.1 何谓打包 157
6.5 打包输出 157
6.5.2 混淆编译打包 158
6.5.3 将MailBox打包输出 159
6.5.4 运行打包档案程序文件 162
6.6 总结 163
第2篇 初级应用篇 165
7.1 用户界面设计器 166
第7章 用户界面应用程序开发 166
7.2.1 为何使用布局管理器 167
7.2 布局管理器 167
7.2.2 经典布局管理器 168
7.2.3 JBuilder提供的布局管理器 173
7.3 用户界面组件 174
7.4.2 事件监听器 177
7.4.1 事件类 177
7.4 事件处理模型 177
7.4.3 显式事件使能 181
7.4.4 适配器 182
7.5.1 创建工程和主界面 183
7.5 文本编辑器 183
7.5.2 加入一个多行文本框组件 186
7.5.3 创建菜单 188
7.5.4 加入一个FontChooser对话框 190
7.5.6 添加菜单事件调用JColorChooser 192
7.5.5 使用FontChooser设置多行文本框中的字体 192
7.5.8 添加文件选择对话框 193
7.5.7 添加菜单事件清除多行文本框的内容 193
7.5.9 添加从文件中读取内容的方法 194
7.5.10 添加保存文件菜单处理事件 195
7.5.11 添加代码监视文件内容的变化 197
7.5.12 让工具栏工作起来 198
7.5.14 为多行文本框添加上下文菜单 200
7.5.13 为多行文本框组件添加事件处理 200
7.5.15 在窗口状态条中显示文件及其状态 201
7.6 总结 203
8.2 Bean的编写过程 204
8.1 什么是Bean 204
第8章 JavaBean开发 204
8.3.1 Bean的属性 206
8.3 Bean属性和事件 206
8.3.2 属性编辑器 207
8.3.3 属性定制器 208
8.4 整数值范围Bean功能介绍 209
8.3.4 Bean的事件 209
8.5.1 创建IntValueBean 210
8.5 IntValueBean编写 210
8.5.3 添加关联属性 212
8.5.2 序列化组件 212
8.5.4 成为属性变化的监听器 215
8.5.5 添加限制属性 218
8.5.6 添加得到或失去焦点事件 220
8.6.1 创建RangeBean 223
8.6 建立RangeBean 223
8.6.2 代理设置IntValueBean的bgColor属性 225
8.6.4 成为限制属性否决监听器 226
8.6.3 代理设置IntValueBean的intValue属性 226
8.7 BeanInfo 229
8.8 属性编辑器 231
8.8.1 生成属性编辑器 232
8.8.2 在Beanlnfo中声明属性编辑器 234
8.9.1 创建Bean的定制器 236
8.9 Bean定制器 236
8.9.2 在BeanInfo中说明Bean的定制器 238
8.10.1 为Bean设定图标 239
8.10 打包输出 239
8.10.3 打成JAR包 240
8.10.2 查看Bean的各部分内容 240
8.11 添加到组件面板 241
8.12 总结 243
9.1.2 JDataStore的配置 244
9.1.1 JDataStore的特性 244
第9章 JDataStore数据库开发 244
9.1 JDataStore简介 244
9.2.2 创建JDataStore文件 246
9.2.1 启动JDataStore 246
9.2 用JDataStore浏览器管理数据库 246
9.3.1 创建表 247
9.3 如何创建表及索引 247
9.2.3 打开JDataStore文件 247
9.4.2 修改密码 248
9.4.1 管理用户 248
9.3.2 创建索引 248
9.4 JDataStore的安全性管理 248
9.5 JDataStore数据库简单应用 249
9.4.3 数据库加密 249
9.6 数据库图形用户界面程序 251
9.7 JDataStore的数据导入导出 255
9.8 JDataStore在非结构化存储方面的应用 259
9.10 总结 264
9.9 发布基于JDataStore的应用程序 264
10.1.1 DataExpress的主要组件 265
10.1 DataExpress简介 265
第10章 DataExpress和dbSwing数据库开发 265
10.1.2 DataExpress组件说明及其属性 266
10.1.3 DataExpress的体系结构 268
10.2.1 访问文本数据 269
10.2 使用DataExpress和dbSwing组件编写数据库应用程序 269
10.1.4 模块化DataExpress体系结构的优点 269
10.2.2 数据库图形用户界面程序 274
10.2.3 允许“脱机”修改的数据集 278
10.2.4 数据集二次处理 281
10.2.5 使用存储过程返回数据集 285
10.2.6 序列化数据集 288
10.2.7 触发器 292
10.3 总结 294
11.1 Applet概述 295
第11章 Applet开发 295
11.2 关于浏览器 296
11.3.2 程序组成 298
11.3.1 界面及功能 298
11.3 指法练习Applet游戏介绍 298
11.4 利用向导生成Applet 301
11.5 设计Applet界面 305
11.6 游戏的统计数据 306
11.7 字母下落线程 307
11.8 添加击中音效 309
11.9 字母下落线程的产生器线程 310
11.10 响应用户按键事件 311
11.11.1 为按钮添加图标 312
11.11 控制游戏 312
11.11.2 通过按钮事件控制游戏 313
11.11.3 保存游戏统计数据 314
11.11.4 关注Applet生命周期 315
11.12.1 数字签名技术 317
11.12 打包并进行数字签名 317
11.12.2 数字证书的生成 318
11.12.3 打包 319
11.12.4 在文件中引用Applet包文件 321
11.13 使用插件下载JRE 322
11.14 总结 324
第3篇 中级应用篇 325
12.1 Web应用程序概述 326
第12章 Web应用程序开发基础 326
12.2 Web开发的各项技术 327
12.3 Web开发的过程 329
12.4.2 什么是WAR文件 330
12.4.1 什么是Web模块 330
12.4 Web模块和WAR文件 330
12.4.3 如何用JBuilder向导创建Web模块 331
12.4.4 Web模块的目录结构 333
12.5.1 Module设置页 335
12.5 更改Web模块设置 335
12.5.3 Clean设置页 336
12.5.2 Web设置页 336
12.5.4 Build设置页 337
12.5.5 Content设置页 338
12.6 配置Web应用服务器 340
12.7 总结 341
13.1.1 JSP概述 342
13.1 JSP开发必备 342
第13章 JSP开发 342
13.1.2 JSP标签 343
13.1.3 JSP隐含对象 344
13.1.4 JSP和对应的Servlet 345
13.2 用户登录Web应用程序功能介绍 346
13.3.1 创建数据库表 348
13.3 模块编写准备工作 348
13.3.3 编写获取数据库连接类 349
13.3.2 创建工程及Web模块 349
13.4.1 创建login.jsp 351
13.4 登录页面login.jsp 351
13.4.2 将用户列表改为动态 353
13.5 切换控制switch.jsp 355
13.5.1 编写User.java 356
13.5.2 编写页面程序 357
13.6 错误处理页面error.jsp 361
13.7 登录失败fail.jsp 362
13.8.1 将第三方标签库配置到JBuilder中 363
13.8 欢迎页面welcome.jsp 363
13.8.2 创建欢迎JSP页面 365
13.10 用户登录和退出日志 368
13.9 quit.jsp退出处理页面 368
13.11 程序部署 371
13.12 总结 373
14.1.1 Servlet工作方式 374
14.1 Servlet开发必备 374
第14章 Servlet开发 374
14.1.2 Servlet的特性及应用场合 375
14.2.1 原登录模块的不足 376
14.2 应用程序改造和功能新增 376
14.2.3 事前准备 377
14.2.2 新增系统日志模块 377
14.3 自动启动Servlet 378
14.4 过滤器的Servlet 383
14.5 监听器的Servlet 385
14.6.1 通过向导创建ExcelFileServlet 387
14.6 文件下载的Servlet 387
14.6.2 下载日志文件代码 389
14.7 总结 391
14.6.3 改造welcome.jsp 391
15.1.1 Struts技术框架 392
15.1 Struts概述 392
第15章 Struts开发 392
15.1.2 Struts 1.1新增功能 395
15.2.2 新增一个图书管理模块 397
15.2.1 用Action控制器替换switch.jsp 397
15.2 应用程序改造和升级 397
15.3.1 用ActionForm截取登录表单数据 398
15.3 改造原登录模块 398
15.2.3 事前准备 398
15.3.2 用Action代替switch.jsp的控制转换功能 401
15.4.1 新增一个Struts配置文件 407
15.4 新增图书记录 407
15.4.2 图书ActionForm 409
15.4.3 新增图书JSP页面 411
15.4.4 创建BookInsertAction 415
15.5 总结 418
16.1.1 JSF简介 419
16.1 JSF快速学习 419
第16章 JSF开发 419
16.1.2 JSF原理 420
16.2.1 开始使用JSF前的准备 421
16.2 创建基于JSF框架的Web应用 421
16.2.2 一个简单的JSF应用 422
16.3.1 JBuilder提供的JSF工具 426
16.3 在JBuilder中实战JSF 426
16.3.2 模拟账户查询程序 429
16.3.3 字体编辑程序 435
16.4 总结 441
17.1.1 Web发布框架 442
17.1 Cocoon简介 442
第17章 Cocoon开发 442
17.1.3 Cocoon的工作原理 443
17.1.2 什么是Cocoon 443
17.1.4 XSP的工作原理 444
17.2.1 创建Cocoon模块 446
17.2 在JBuilder中实战Cocoon 446
17.2.2 一个最简单的XSP 448
17.2.3 利用ESQL从数据库中读取数据 450
17.2.4 在XSP中发送电子邮件 456
17.3 总结 457
第4篇 高级应用篇 459
18.1.1 XML文档规则 460
18.1 XML简介 460
第18章 XML开发 460
18.1.2 常用概念 461
18.1.3 第一个XML文档 462
18.1.4 XML结构化定义简介 463
18.1.5 XML转换简介 464
18.2.1 基于DTD生成XML 469
18.2 在JBuilder中实战XML 469
18.2.2 转换XML文档 471
18.2.3 XTable和XQuery组件 475
18.2.4 XMLDBMSQuery和XMLDBMSTable组件 479
18.2.5 基于DTD实现数据绑定 483
18.3.1 文档对象模型(DOM) 489
18.3 XML解析 489
18.3.2 用于XML的简单API(SAX) 492
18.3.3 使用SAX同步解析XML数据流 496
18.4 总结 500
18.3.4 选择合适的API 500
19.1 J2EE 501
第19章 EJB开发 501
19.1.1 J2EE技术与EJB 502
19.2.2 EJB形成原因 503
19.2.1 EJB概要介绍 503
19.2 EJB 503
19.2.4 EJB组成 504
19.2.3 EJB的适用范围 504
19.2.5 EJB服务器和EJB容器 505
19.2.6 EJB类型 506
19.3.1 系统介绍 507
19.3 网上模拟ATM提款机系统 507
19.3.2 用例介绍 508
19.3.3 应用程序功能组成 509
19.3.4 程序组成 510
19.4.1 创建数据库 511
19.4 模块编写准备工作 511
19.4.2 应用服务器的配置 512
19.4.3 数据源配置 514
19.4.4 创建工程和EJB模块 515
19.4.5 使用JBuilder开发Account实体类 516
19.4.6 创建业务逻辑类 518
19.4.7 Web设计 521
19.4.8 测试程序 524
19.4.9 程序运行 525
19.5 总结 526
20.1.1 Web Service概述 527
20.1 Web Service简介 527
第20章 Web Service开发 527
20.1.2 Web Service相关概念 529
20.1.3 Web Service的特点 530
20.2.1 创建并测试Web Service 531
20.2 在JBuilder中实战Web Service 531
20.2.2 创建Web Service客户端 536
20.2.3 在Tomcat 5.0中部署Web Service 539
20.2.4 传递复杂数据类型的Web Service 540
20.2.5 传递大二进制数据的Web Service 546
20.2.6 基于EJB创建Web Service 548
20.3.1 SOAP报文侦听 549
20.3 JBuilder提供的Web Service工具 549
20.3.2 Web Service搜索器 552
20.4 总结 553
21.1.1 什么是CORBA 554
21.1 CORBA简介 554
第21章 CORBA开发 554
21.1.2 ORB原理 555
21.1.4 使用CORBA的优点 557
21.1.3 CORBA与Java的关系 557
21.2.1 OMG IDL数据类型 558
21.2 接口定义语言IDL介绍 558
21.2.2 IDL设计 559
23.3.1 简单的CORBA应用 561
21.3 使用JDK开发CORBA应用 561
21.3.2 传递复杂数据类型的CORBA应用 564
21.4.1 VisiBroker简介 571
21.4 使用VisiBroker开发CORBA应用 571
21.4.3 基于VisiBroker开发CORBA应用的实例 572
21.4.2 基于VisiBroker开发CORBA应用的步骤 572
21.5 总结 574
22.1.1 J2ME介绍 575
22.1 J2ME概述 575
第22章 无线应用开发 575
22.1.4 简表概述 576
22.1.3 配置概述 576
22.1.2 J2ME总体架构 576
22.1.5 J2ME、J2SE与J2EE之间的比较 577
22.2 实例介绍 578
22.1.6 J2ME在手机应用的前景 578
22.3.1 工程的创建 579
22.3 创建工程 579
22.4.1 MIDlet介绍 580
22.4 入口主程序开发 580
22.4.2 入口程序 581
22.5.1 RMS介绍 583
22.5 RMS管理模块 583
22.5.2 RMS管理 584
22.6.2 远程通信模块开发 590
22.6.1 网络编程介绍 590
22.6 远程通信模块 590
22.7.1 查询界面设计 593
22.7 查询界面模块 593
22.7.2 查询功能开发 594
22.8.1 结果显示界面设计 597
22.8 结果显示模块 597
22.8.2 结果显示功能开发 598
22.10.1 打包 599
22.10 应用程序打包及部署 599
22.9 程序运行结果 599
22.10.2 部署 600
22.11.1 程序运行方法配置 601
22.11 其他配置 601
22.11.2 更换模拟器 602
22.12 总结 603
第5篇 提高篇 605
23.1.1 VCS的作用 606
23.1 团队协作开发概述 606
第23章 团队协作及版本控制 606
23.1.2 JBuilder对VCS的支持 607
23.2.1 初始化CVS代码库 608
23.2 安装配置CVS服务器 608
23.2.2 分配代码库访问权限 610
23.3.1 提交工程到CVS服务器 611
23.3 提交工程和下载工程 611
23.3.2 从CVS服务器下载工程 614
23.4.1 添新文件到代码库 616
23.4 CVS团队协作常用操作 616
23.4.4 合并更改(Merge) 617
23.4.3 同步更新到本地机器(Update) 617
23.4.2 提交更改到CVS服务器(Commit) 617
23.4.6 版本回溯和比较 621
23.4.5 删除文件 621
23.4.7 批量提交和更新 622
23.5.1 StarTeam概述 624
23.5 用StarTeam进行团队开发 624
23.5.2 安装StarTeam服务器 625
23.5.4 添加新用户 626
23.5.3 启动StarTeam服务器 626
23.5.5 提交工程到StarTeam服务器 628
23.5.6 从StarTeam服务器下载工程 631
23.5.7 StarTeam的操作界面介绍 632
23.6 变化监视的标识设置 633
23.7 总结 634
24.1 Java和UML 635
第24章 UML浏览器 635
24.2.1 有限包依赖图 636
24.2 JBuilder和UML 636
24.2.2 组合类图 637
24.3 JBuilder UML图 639
24.4 浏览UML图 641
24.4.1 UML浏览器 642
24.4.4 浏览内部类图 643
24.4.3 浏览类图 643
24.4.2 浏览包图 643
24.6.1 工程属性中相关配置 644
24.6 UML相关配置 644
24.5 UML和结构窗格 644
24.7 总结 646
24.6.2 开发环境相关配置 646
25.1 自动测试代码的重要性 647
第25章 单元测试 647
25.2.1 简单的框架 648
25.2 JUnit测试框架 648
25.2.2 测试固件(Fixture) 649
25.2.4 测试套件(TestSuite) 650
25.2.3 测试用例(TestCase) 650
25.2.5 测试运行器 651
25.3.1 分段函数类 652
25.3 业务类介绍 652
25.3.2 字符串处理类 653
25.4 创建测试用例 654
25.5 用套件捆绑运行多个测试用例 658
25.6.1 JDBC测试固件 661
25.6 创建测试固件 661
25.6.2 比较测试固件 667
25.7 测试运行配置 670
25.8 总结 672
26.1 什么是Javadoc文档 674
第26章 创建Javadoc文档 674
26.2 Javadoc标签介绍 677
26.3.1 Javadoc对话框 682
26.3 编写Javadoc注释 682
26.3.2 使用JavadocInsight 683
26.3.3 自定义的Javadoc标签 684
26.3.4 使用代码模板 685
26.3.5 Javadoc注释冲突 687
26.3.6 todo标签 688
26.4 创建Javadoc文档 689
26.5 总结 693
27.1.1 为什么要重构 694
27.1 认识重构 694
第27章 代码重构 694
27.1.2 何时着手重构 695
27.2 JBuilder对重构的支持 696
27.2.2 重构对话框 697
27.2.1 提供了哪些重构的功能 697
27.2.3 重构一般操作步骤 698
27.3.2 查看引用 699
27.3.1 查看定义 699
27.3 重构之事前侦察 699
27.4 重命名 700
27.3.3 查看覆盖方法 700
27.4.2 属性重命名 701
27.4.1 值域及变量重命名 701
27.4.3 方法重命名 702
27.4.4 方法参数更改 703
27.4.6 包重命名 705
27.4.5 类重命名 705
27.5.1 提炼方法 706
27.5 类的内部提炼 706
27.5.3 提炼变量 707
27.5.2 内联方法 707
27.5.4 内联变量 708
27.6.1 搬迁方法 709
27.6 类继承体系间的搬迁 709
27.6.2 搬迁值域 710
27.6.3 提炼超类 711
27.6.4 提炼接口 712
27.7.2 优化循环 713
27.7.1 使工程基于JDK 5.0 713
27.7 无缝升级到JDK 5.0 713
27.7.3 自动装/拆箱 714
27.7.4 非泛型转泛型 715
27.8.1 优化import 716
27.8 杂项重构 716
27.8.2 自动添加异常捕捉 717
27.8.3 部署描述文件 719
27.8.5 代理 720
27.8.4 EJB 720
27.9 分布式重构 722
27.10 总结 725
附录A 各种数据库连接关键代码 726
附录B 使用第三方工具开发XML 728
附录C Javadoc命令使用说明 731