第1章 NetBeans平台入门 1
1.1配置IDE 1
1.2 NetBeans IDE基础 2
创建模块 2
创建应用程序 3
使用文件模板 4
声明依赖关系 4
运行模块 5
定制应用程序 5
发布应用程序 6
第2章 模块化编程的优势 7
2.1分布式开发 7
2.2模块化应用 8
版本 8
次级版本信息 9
依赖管理 9
2.3模块化编程宣言 10
2.4使用NetBeans进行模块化编码 11
第3章 模块化的体系结构 15
3.1模块——程序的装配单元 15
3.2模块的类型 15
最终用户界面模块 16
简单程序库 16
多厂商支持 16
模块库 17
3.3模块生命周期 18
3.4模块群组 21
第4章 低耦合的交互 25
4.1注册和查找 25
4.2 MetaInf服务 26
4.3全局Lookup 27
4.4编写扩展点 29
第5章 Lookup 33
5.1拥有Lookup的对象 36
5.2 Lookup作为通信机制 37
5.3 Lookup和代理 40
5.4 Lookup和选择 42
5.5编写Lookup敏感的操作 43
5.6追踪全局选择 44
5.7 NetBeans API中遗留的Lookup模式变种 45
5.8常见的Lookup模式 45
第6章 Filesytems 47
6.1 FileSystems和FileObjects 48
6.2需要处理什么类型的FileSystem 49
6.3层次 49
6.4 XML文件系统 50
6.5声明式注册二:系统文件系统 51
“系统文件系统”是如何工作的 51
“系统文件系统”是可读写的 52
使用“系统文件系统”的FileChangeEvents 53
探索系统文件系统——菜单 54
6.6从FileObject到Java对象 61
使用工厂方法从.instance文件创建对象 62
通过代码访问“系统文件系统” 64
使用.settings文件 66
6.7浏览“系统文件系统” 66
6.8小结 66
第7章 线程、侦听者模式和MIME查找 71
7.1创建模块和SPI 72
7.2实现ListModelProvider 73
建立依赖 74
创建XmlListModelProvider 75
注册XmlListModelProvider 85
7.3提供一个UI组件 86
MIME查找SPI和API 86
提供一个窗口组件显示列表模型 87
7.4使用Pseudo Navigator 92
7.5小结:Pseudo Navigator——这张图片有什么错误? 92
第8章 窗口系统 95
8.1窗口系统的作用 96
8.2“窗口系统API”中的类 97
8.3使用TopComponent 99
8.4在会话间持久化状态 101
8.5窗口系统持久化数据 103
8.6创建编辑器样式的TopComponent(以非声明的方式) 106
8.7高级窗口系统配置:自定义Mode 107
8.8使用TopComponent群组 111
第9章 Node、 Explorer视图、Action和Presenter 115
9.1 Node API 116
9.2 Explorer API 125
explorer视图组件的类型 125
创建显示Node的TopComponent 127
添加详细视图 129
使用Explorer API添加另一个详细视图 131
9.3 Action 136
Presenter 137
Action API和NetBeans标准操作 140
在菜单、工具栏和快捷键中安装全局Action 140
上下文感知操作 141
9.4 Node属性 142
9.5 Node和DataObject:创建系统文件系统浏览器 145
9.6小结:节点、表单属性和用户界面设计 147
第10章 DataObject和DataLoader 149
10.1 DataObject来自哪里? 151
10.2添加对新文件类型的支持 152
为NetBeans添加对ManiFest文件的支持 152
由manifest文件提供Manifest对象 157
由ManifestDataObject和ManifestDataNode提供ManifestProvider 157
图标徽章 160
用JUnit测试ManifestDataObj ect 164
10.3在内部使用自定义的文件类型 170
10.4序列化对象和系统文件系统 170
第11章 图形用户界面 173
11.1介绍 173
11.2新建GUI窗体 175
11.3在窗体中放置和排列组件 175
11.4设置组件的大小和大小可调性 176
11.5设定组件的行为和外观 177
11.6生成事件侦听和处理方法 178
11.7定制生成的代码 180
11.8用可视化的方法构建浏览器视图 181
11.9预览窗体 182
11.10在窗体编辑器中使用自定义的Bean 182
11.11使用不同的布局管理器 183
第12章 多视图编辑器 185
12.1介绍 185
12.2入门 186
12.3理解多视图编辑器 187
12.4创建编辑器的基础构架 187
12.5创建源视图 191
描述源Multi ViewElement 191
创建源编辑器 192
在多视图编辑器中加入源视图 195
12.6创建可视化视图 197
12.7完成示例 199
第13章 语法高亮显示 201
13.1介绍 201
13.2准备创建语法高亮支持 202
13.3创建Token ID 203
13.4创建词法分析器 204
13.5扩展选项窗口 207
13.6扩展选项窗口 210
13.7完成 212
第14章 完成代码 213
14.1介绍 213
14.2理解代码完成 215
14.3代码完成提示类型 215
14.4准备使用CompletionProvider接口 216
14.5实现CompletionProvider 217
14.6实现CompletionItem 219
14.7为CompletionProvider添加过滤器 222
14.8为“代码完成提示框”加入文档 225
14.9为“代码完成提示框”加入工具提示 227
第15章 组件面板 229
15.1介绍 229
理解组件面板 230
创建第一个组件面板 232
15.2向组件面板中添加元素 234
为第一个组件面板添加元素 234
让用户向组件面板中添加元素 239
15.3拖放组件元素 241
定义放置目标 242
定义拖拽图像 243
定义放置事件 245
定义拖拽动作 246
15.4将支持特性添加到组件面板中 247
为面板添加操作 248
添加过滤器并刷新面板 250
添加属性改变侦听器 252
设置面板属性 253
提供组件面板管理器 255
15.5为文本编辑器创建组件面板 256
将组件面板与文本编辑器关联 257
在文本编辑器的组件面板中添加元素 259
在文本编辑器中格式化被放置的元素 261
让用户在文本编辑器的组件面板中添加元素 262
第16章 超链接 265
16.1介绍 265
准备提供超链接 265
HyperlinkProvider类 266
快速开始 266
16.2使用HyperlinkProvider类的准备工作 266
16.3 manifest文件中的超链接 267
识别超链接 268
设置超链接的长度 269
打开引用的文档 270
完成 272
第17章 标注 273
17.1介绍 273
17.2准备创建错误标注 274
17.3创建错误标注 274
理解错误标注DTD 75
注册错误标注 278
安装错误标注 279
17.4准备使用错误标注 279
17.5使用错误标注 280
描述标注 280
挂载和分离标注 281
定义请求处理任务 283
标注某行的一部分 284
17.6完成 284
第18章 选项窗口 287
18.1介绍 287
18.2查看“选项”窗口扩展文件 290
AdvancedOption类 290
OptionsPanelController类 290
可视化选项面板 292
18.3创建主面板 293
第一个主面板 293
重新排序选项面板 295
18.4向“选项”窗口中添加设置 295
第19章 Web框架 299
19.1介绍 299
支持Web框架的准备工作 300
WebFrameworkProvider类 300
快速开始 300
示例:简单注册 301
19.2准备使用WebFrameworkProvider类 302
19.3为框架提供配置面板 303
创建配置面板 304
示例:在WebFramework Provider实现中添加配置面板 306
编写配置面板 307
19.4创建源代码结构 309
准备使用extend()方法 309
示例:定义extend()方法 309
创建模板 311
创建Java文件的模板 311
准备:利用模板在程序中创建Java文件 312
利用模板在程序中创建Java文件 313
尝试使用框架支持模块 315
19.5让用户在“框架”面板中选择库 316
19.6“项目属性”对话框和Web框架 318
19.7完成 319
第20章 Web服务 321
20.1介绍 321
20.2创建和测试Web服务客户端 321
20.3集成Web服务客户端 326
第21章JavaHelp文档 331
21.1创建帮助集 331
21.2删除IDE的帮助集 334
21.3标记帮助集的默认文字 337
第22章 更新中心 341
22.1介绍 341
22.2添加IDE的更新中心功能 342
22.3创建和分发自动更新描述符 343
用IDE创建自动更新描述符 343
上传自动更新描述符和NBM文件 344
22.4分发自动更新描述符的URL 45
生成一个注册自动更新描述符的模块 345
让用户手动注册自动更新描述符 345
22.5从更新中心下载NBM文件 346
22.6将更新发布到现有模块 347
第23章 用例1:跟Jens Trapp学习NetBeans模块开发 349
23.1介绍 349
23.2调用外部工具 350
创建Tidy错误检测操作 350
获取文件名 352
运行HTML Tidy 353
解决依赖 356
运行示例 356
23.3处理输出 358
打印输出 359
侦听输出 361
解析输出 363
在“源代码编辑器”中标注错误 365
23.4配置工具 371
扩展“选项”窗口 371
持久化选项 373
23.5格式化和转换文件 375
操作文件 376
查看区别 382
23.6控制转换 383
创建向导 383
连接向导 393
第24章 用例2: Rich Unger应用程序开发 395
24.1介绍 395
24.2开始 396
24.3创建audio/wav的MIME类型支持 398
24.4在WavDataObject中封装音频数据 401
24.5创建查看WAV文件的组件 404
24.6将WAV编辑器转变为多视图编辑器 406
24.7创建插入额外视图的API 412
24.8实现API,提供新视图 415
附录A 高级模块系统开发技术 421
附录B NetBeans中的常见习惯和代码模式 435
附录C 性能 441