第1章 J2ME概述 1
1.1 J2ME背景介绍 2
1.1.1 Java平台技术的发展和现状 2
1.1.2 J2ME简介 3
1.1.3 J2ME体系结构 3
1.1.4 J2ME中的虚拟机 4
1.1.5 J2ME配置 5
1.1.6 J2ME简表 5
1.2 J2ME配置简介 6
1.2.1 CDC概述 6
1.2.2 CLDC概述 7
1.3 MIDP简介 14
1.3.1 MIDP设备 14
1.3.2 MIDP体系结构 14
1.3.3 MIDP2.0新特性 15
1.4 MIDlet简介 16
1.4.1 MIDlet生命周期 16
1.4.2 MIDlet程序结构 18
1.4.3 MIDlet程序中的事件处理 18
1.4.4 MIDlet套件 20
1.4.5 MIDlet开发流程 22
1.5 本章小结 25
第2章 J2ME开发环境配置 26
2.1 J2ME通用开发工具 27
2.1.1 J2MEWTK的安装 27
2.1.2 J2MEWTK目录结构 29
2.1.3 J2MEWTK项目开发 29
2.1.4 J2MEWTK项目管理 34
2.1.5 J2MEWTK项目发布 35
2.2 移动设备制造商的SDK 43
2.2.1 Sony Ericsson J2MESDK 43
2.2.2 Motorola J2ME SDK 46
2.2.3 NokiaJ2MESDK 51
2.2.4 SamSungJ2MESDK 57
2.3 J2ME集成开发工具 63
2.3.1 Eclipse集成开发环境 63
2.3.2 JBuilder成开发环境 73
2.3.3 NetBeans集成开发环境 76
2.4 本章小结 84
第3章 高级用户界面 85
3.1 MIDP高级用户界面设计概述 86
3.2 Display类和Displayable类 87
3.3 高级屏幕对象 90
3.3.1 TextBox文本框 90
3.3.2 List列表 93
3.3.3 Alert消息框 96
3.3.4 Form表单 102
3.3.5 Ticker滚动条 104
3.4 表单中的Item组件 107
3.4.1 StringItem 107
3.4.2 TextField 110
3.4.3 ImageItem 112
3.4.4 DateField 114
3.4.5 Gauge 117
3.4.6 ChoiceGroup 122
3.4.7 CustomItem 124
3.4.8 Spacer 127
3.5 高级事件处理 128
3.5.1 Command软键 128
3.5.2 CommandListener软键事件 131
3.5.3 ItemStateListener组件事件 133
3.5.4 ItemCommandListener组件软键事件 135
3.6 本章小结 135
第4章 低级用户界面 136
4.1 Canvas画布屏幕设计 137
4.1.1 Canvas概述 137
4.1.2 画布屏幕大小 137
4.1.3 画布屏幕的绘制和重绘 139
4.1.4 Canvas屏幕可视性通知 143
4.2 Canvas事件处理 145
4.2.1 按键事件 145
4.2.2 指针事件 148
4.2.3 游戏动作 151
4.3 图形绘制与Graphics类 154
4.3.1 Graphics类概述 154
4.3.2 颜色模型 155
4.3.3 坐标系统 155
4.3.4 图形剪裁 158
4.3.5 绘制几何图形 159
4.4 文字绘制与Font类 162
4.4.1 Font类概述 162
4.4.2 绘制文本 163
4.4.3 字体属性 163
4.5 图像处理与Image类 166
4.5.1 Image类概述 166
4.5.2 PNG图像格式 167
4.5.3 绘制不变图像 170
4.5.4 绘制可变图像 173
4.5.5 图像双缓冲技术 174
4.6 综合实例:贪食蛇游戏 177
4.6.1 游戏功能分析 177
4.6.2 游戏具体实现 183
4.7 本章小结 188
第5章 J2ME记录存储管理系统 189
5.1 记录存储管理系统概述 190
5.2 记录存储管理系统类库简介 191
5.3 记录存储管理系统的基本操作 192
5.3.1 创建和打开记录存储 192
5.3.2 关闭和删除记录存储 192
5.3.3 增加记录 194
5.3.4 获取记录 195
5.3.5 修改记录 195
5.3.6 删除记录 195
5.4 记录存储管理系统的高级操作 198
5.4.1 记录存储枚举接口 198
5.4.2 记录存储过滤接口 199
5.4.3 记录存储比较接口 202
5.4.4 记录存储监听接口 203
5.5 综合实例:手机电话簿 204
5.6 本章小结 211
第6章 通用连接框架 212
6.1 通用连接框架概述 213
6.2 通用连接框架的API 214
6.3 通用连接框架的开发步骤 217
6.4 本章小结 221
第7章 基于HTTP协议的网络开发 222
7.1 HTTP协议概述 223
7.1.1 HTTP连接状态 223
7.1.2 HTTP请求方式 223
7.2 JavaHTTP服务器 224
7.2.1 JavaHTTP服务器简介 224
7.2.2 Tomcat服务器安装与配置 224
7.3 建立HTTP连接 226
7.4 使用HTTP连接 229
7.4.1 向服务器提交数据 229
7.4.2 从服务器获取数据 236
7.5 综合实例:构建邮件系统 238
7.6 本章小结 246
第8章 基于Socket和数据报的网络开发 247
8.1 Socket和数据报编程概述 248
8.1.1 TCP协议概述 248
8.1.2 UDP协议概述 248
8.2 Socket编程 249
8.2.1 SocketConnection接口的使用 249
8.2.2 ServerSocketConnection接口的使用 250
8.3 数据报编程 258
8.4 本章小结 261
第9章 基于红外和蓝牙协议的网络开发 262
9.1 无线数据传输概述 263
9.1.1 红外数据传输概述 263
9.1.2 蓝牙数据传输概述 263
9.2 通过IrOBEX进行红外通信 264
9.2.1 IrOBEX协议概述 264
9.2.2 IrOBEX开发步骤 265
9.3 通过JABWT进行蓝牙通信 272
9.3.1 蓝牙协议栈 273
9.3.2 蓝牙互操作性配置 274
9.3.3 Java蓝牙无线技术API 274
9.3.4 通过RFCOMM实现蓝牙应用 278
9.4 综合实例:手机蓝牙五子棋游戏 295
9.4.1 游戏功能分析 295
9.4.2 游戏具体实现 296
9.5 本章小结 306
第10章 消息应用开发 307
10.1 无线消息概述 308
10.1.1 GSM短消息服务 308
10.1.2 GSM小区广播服务 309
10.2 WMA概述 309
10.2.1 WMA简介 309
10.2.2 WMA类库简介 309
10.3 使用WTK中的WMA控制台 310
10.3.1 配置和启动WTK中的WMA控制台 310
10.3.2 使用WMA控制台发送文本消息 312
10.3.3 WMA控制台发送小区广播 314
10.3.4 WMA控制台发送多媒体消息 315
10.4 使用WMA编写收发短消息程序 317
10.4.1 发送和接收SMS消息 317
10.4.2 发送和接收二进制消息 323
10.4.3 发送和接收MMS消息 330
10.5 本章小结 335
第11章 多媒体开发 336
11.1 MMAPI概述 337
11.2 媒体管理类Manager 337
11.3 播放器接口Player 338
11.3.1 播放器状态 338
11.3.2 播放器监听接口 341
11.4 媒体控制接口Control 343
11.4.1 获取控制器 343
11.4.2 音调控制器接口 343
11.4.3 音量控制接口 345
11.4.4 视频控制接口 346
11.5 实现手机拍照功能 350
11.6 综合实例:手机拼图游戏 357
11.6.1 游戏功能分析 357
11.6.2 游戏具体实现 357
11.7 本章小结 368
第12章 MIDP游戏编程 369
12.1 GameAPI概述 370
12.2 游戏容器GameCanv类 371
12.2.1 屏幕缓冲 371
12.2.2 获取键盘输入状态 372
12.2.3 实现游戏主循环 373
12.3 图层Layer类 378
12.4 游戏精灵Sprite类 379
12.4.1 帧动画 379
12.4.2 帧序列 380
12.4.3 精灵翻转 385
12.4.4 参考像素点 391
12.4.5 碰撞检测 392
12.5 游戏背景TiledLayer类 393
12.5.1 图像贴图和单元格 393
12.5.2 制作静态地图背景 395
12.5.3 制作动态地图背景 397
12.6 图层管理LayerManager类 402
12.6.1 图层的索引 402
12.6.2 图层的位置与绘制 403
12.6.3 设置视图窗口 403
12.7 综合实例:疯狂坦克游戏 404
12.7.1 游戏程序结构和设计思想 404
12.7.2 游戏程序分析和具体实现 405
12.8 本章小结 420
第13章 Mobile3D程序开发 421
13.1 手机3D开发概述 422
13.1.1 Mobile3DGraphicsAPI简介 422
13.1.2 Mobile3DGraphics两种开发模式 423
13.2 3D模型的建立 423
13.2.1 顶点数组 423
13.2.2 顶点缓冲和索引缓冲 424
13.2.3 外观属性 424
13.2.4 多面体模型的建立 425
13.3 3D场景的创建 425
13.3.1 世界World类 426
13.3.2 摄像机Camera类 426
13.3.3 光线Light类 429
13.3.4 背景Background类 430
13.3.5 场景中的坐标转换 430
13.3.6 场景的绘制 431
13.4 外部建模导入3D模型 434
13.5 综合实例:第一人称视角室内漫游 436
13.6 本章小结 442
第14章 单屏游戏:潜艇大战 443
14.1 游戏创意和准备 444
14.1.1 游戏创意 444
14.1.2 游戏准备工作 444
14.2 游戏的流程和模块结构 445
14.2.1 游戏基本运行流程 445
14.2.2 游戏主要类 445
14.3 游戏功能的实现 446
14.3.1 游戏画布屏幕的实现 446
14.3.2 军舰类的实现 449
14.3.3 潜艇类的实现 451
14.3.4 水雷类的实现 454
14.3.5 MIDIet应用程序类的实现 457
14.4 游戏运行 457
14.5 本章小结 458
第15章 手机益智类游戏:欧特寻宝 459
15.1 游戏创意和架构 460
15.1.1 游戏创意 460
15.1.2 游戏架构 461
15.2 游戏的流程和模块结构 462
15.2.1 游戏基本运行流程 462
15.2.2 游戏主要模块 462
15.3 游戏辅助功能的实现 464
15.3.1 游戏的闪屏类实现 464
15.3.2 游戏功能设置菜单的实现 466
15.3.3 游戏屏幕类 469
15.3.4 其他辅助类 488
15.4 游戏核心功能的实现 489
15.4.1 游戏主角的实现 489
15.4.2 游戏中魔法的实现 493
15.4.3 游戏中寻路算法的实现 497
15.5 游戏运行 500
15.6 本章小结 501