第1章 初识MIDlet 1
1.1 HelloMIDP 1
1.2 使用J2ME无线工具包部署应用 2
1.2.1 启动工具包 2
1.2.2 创建项目 3
1.2.3 准备源代码 5
1.2.4 建立项目 5
1.2.5 项目简析 6
1.2.6 运行应用程序 7
1.2.7 使用多种设备测试 8
1.3 协同ForteCE使用J2ME无线工具包 9
1.3.1 启动Forte 9
1.3.2 创建新项目 9
1.3.3 安装目录 10
1.3.4 创建一个包 12
1.3.5 创建MIDlet Suite 13
1.3.6 运行应用程序 16
第2章 动态内容 18
2.1 比较Date类的实现 18
2.2 Calendar类 21
2.3 TimeZone类 24
2.3.1 MIDP的TimeZone类 24
2.3.2 Java2标准版(J2SE) 26
第3章 Command和CommandListener 28
3.1 Helloworld第2版 28
3.2 运行HelloWorld第2版 29
3.3 多模拟器下的运行 29
3.4 建立LCDUI所需的Mind-set 33
3.5 Command类 33
3.5.3 Command优先级 34
3.6 CommandListener类 34
3.5.1 Command标签 34
3.5.2 Command类型 34
3.6.1 使用内部类实现CommandListener 35
3.6.2 运行日期例子应用程序 38
第4章 使用随机数 39
4.1 J2SE和MIDP的互换性 39
4.1.1 J2SE的随机序列 39
4.1.2 MIDP的随机序列 40
4.2 产生抽签数 42
第5章 使用MIDPAPI进行用户交互 46
5.1 走近TextBox 46
5.1.1 TextBox的更多试验 47
5.1.2 运行 49
5.2 Form类 50
5.3.1 TextField 51
5.3.2 TextField例子程序 51
5.3 向Form添加组件 51
5.3.3 提供浮点运算 54
5.3.4 运行TextField例子程序 55
5.3.5 Choice接口 56
5.3.6 ChoiceGroup 57
5.4 KMath源程序 62
5.4.1 KMathjava 62
5.4.2 QuasiScientificNotation.java 63
5.4.3 KMathExceptionjava 74
第6章 高级用户界面组件 76
6.1 DateField项 76
6.1.1 DateField例子程序 76
6.1.2 运行DateField例子程序 79
6.2 Gauge项 83
6.2.1 非交互性Gauge例子程序 83
6.2.2 运行非交互性Gauge例子程序 86
6.3 ItemStateListener接口 88
6.3.1 交互性Gauge例子程序 88
6.3.2 运行交互性Gauge例子程序 89
第7章 在MIDlet内使用图形 92
7.1 可移植网络图形文件格式(PNG) 92
7.1.1 PNG图像 92
7.1.2 PNG文件 93
7.2 MIDP对PNG的支持 95
7.3 关联MIDlet和图像 95
7.4 在ChoiceGroup内包含图像 101
第8章 用户通知 107
8.1 Alert类 107
8.1.1 使用Alert作为软件封面 107
8.1.2 模式Alert 110
8.2 AlertType类 112
第9章 Ticker类 118
9.1 一个简单的Ticker 118
9.2 Ticker的延续特性 120
9.3 共享的Ticker模型 124
9.4 Ticker-per-Screen模型 127
9.5 改变Ticket的内容 131
第10章 持久性数据 136
10.1 RecordStore类 136
10.1.1 使用RecordStore类实现计划列表 137
10.1.2 运行RecordStore例子应用程序 137
10.1.3 列举MIDlet套件的记录存储集 139
10.1.4 创建记录存储集 140
10.1.5 打开记录存储集 141
10.1.6 添加记录到记录存储集 143
10.1.7 获得记录存储集的信息 144
10.1.8 导航记录存储集 147
10.1.9 RecordEnumeration接口 150
10.1.10 RecordComparator接口 150
10.1.11 删除记录 150
10.1.12 修改记录 152
10.1.13 RecordFilter接口 153
10.2 RecordStoreDemo源代码 155
第11章 记录存储集作为便携式日志 172
11.1 跟踪燃料消耗 172
第12章 简单联网 182
12.1 通用连接框架 182
12.2 查询时间服务器 183
12.2.1 服务器 183
12.2.2 客户端 184
12.2.3 运行例子程序 188
第13章 套接字通信 190
13.1 检查订单状态 190
13.1.1 服务器 193
13.1.2 运行例子程序 196
13.2 查询Skills数据库 199
13.2.1 服务器 202
13.2.2 运行第二个Skills例子程序 205
13.3 从服务器端获取相片 206
13.3.1 服务器 210
13.3.2 运行图片检索例子程序 213
第14章 独立式办公室 216
14.1 随身携带办公室 216
14.2 编写独立式办公室代码 220
14.2.1 独立式办公室MIDlet 220
14.2.2 独立式办公室服务器 229
第15章 高级联网 233
15.1 HttpConnection接口 233
15.2 本地天气 234
15.2.1 客户端 234
15.2.2 服务器端 239
15.2.3 运行例子程序 241
15.3 利用HttpConnection查询Skills数据库 242
15.3.1 客户端 242
15.3.2 服务器 246
15.3.3 运行例子程序 248
15.4 订单状态查询 249
15.4.1 客户端 249
16.1.1 客户端 250
15.4.2 服务器 252
15.4.3 运行例子程序 253
15.5 签名验证 254
15.5.1 客户端 254
15.5.2 运行例子程序 258
第16章 登录与MD5 259
16.1 简单登录 259
16.1.2 服务器 263
16.1.3 运行例子程序 265
16.2 使用MD5 保护口令 266
16.2.1 客户端 267
16.2.2 服务器 274
16.2.3 运行例子程序 277
16.3 MD5算法的J2ME版本 278
16.3.1 MD5.java 278
16.3.2 Base64.ava 283
16.3.3 Base64Exception.java 284
第17章 一个消息转发的应用程序 285
17.1 一个最小的安全消息应用程序 285
17.1.1 客户端 285
17.1.2 服务器 299
17.1.3 运行例子程序 307
B.1 Java.io包 310
17.2 Enigma代码 311
17.2.1 EnigmaMachine.java 311
17.2.2 EnigmaRotor.java 312
17.2.3 EnigmaReflector.java 314
17.2.4 EnigmaRotorTrippledException.java 315
17.3 结论 315
A.1 Java Community Edition集成开发环境:Forte 316
A.2 J2MEWTK(J2ME无线工具包) 316
A.3 PalmOS模拟器(POSE) 316
A.4 MySQL关系型数据库管理系统 316
附录A 安装必备软件 316
A.5 MySQL所用的JDBC驱动程序 317
A.6 ApacheWeb服务器 317
A.7 TomcatServlet容器 317
A.8 mod_jk 317
A.9 光盘中的软件 317
A.9.1 MIDlets 318
A.9.2 创建数据库表的SQL语句文件 318
A.9.3 独立运行的程序和服务器 318
A.9.4 J2EE软件 318
B.1.2 DataOutput接口 319
附录B MIDPAPI 319
B.1.1 DataInput口 319
B.1.3 ByteArrayInputStream类 320
B.1.4 ByteArrayOutputStream类 320
B.1.5 DataInputStream类 321
B.1.6 DataOutputStream类 321
B.1.7 InputStream类 322
B.1.8 InputStreamReader类 322
B.1.9 OutputStream类 323
B.1.10 OutputStreamWriter类 323
B.1.11 PrintStream类 323
B.1.12 Reader类 324
B.1.13 Writer类 324
B.2.3 Byte类 325
B.2.2 Boolean类 325
B.2.4 Character类 325
B.2 java.lang包 325
B.2.1 Runnable接口 325
B.2.5 Class类 326
B.2.6 Integer类 326
B.2.7 Long类 327
B.2.8 Math类 327
B.2.9 Object类 327
B.2.10 Runtime类 328
B.2.11 Short类 328
B.2.12 String类 328
B.2.13 StringBuffer类 329
B.2.14 System类 330
B.3 java.util包 331
B.3.1 枚举接口 331
B.3.2 Calendar类 331
B.2.15 Thread类 331
B.2.16 Throwable类 331
B.3.3 Date类 332
B.3.4 Hashtable类 332
B.3.5 Random类 333
B.3.6 Stack类 333
B.3.7 Timer类 333
B.3.8 TimerTask类 333
B.3.10 Vector类 334
B.3.9 TimeZone类 334
B.4 javax.microedition.io包 335
B.4.1 Connection接口 335
B.4.2 ContentConnection接口 335
B.4.3 Datagram接口 335
B.4.4 DatagramConnection接口 335
B.4.5 HttpConnection接口 336
B.4.10 Connector类 337
B.4.9 StreamConnectionNotifier接口 337
B.4.8 StreamConnection接口 337
B.4.6 InputConnection接口 337
B.4.7 OutputConnection接口 337
B.5 javax.microedition.Icdui包 338
B.5.1 Chocie接口 338
B.5.2 CommandListener接口 338
B.5.3 ItemStateListener接口 338
B.5.5 AletrType类 339
B.5.6 Canvas类 339
B.5.4 Alert类 339
B.5.7 ChoiceGroup类 340
B.5.8 Command类 341
B.5.9 DataField类 341
B.5.10 Display类 341
B.5.11 Displayable类 341
B.5.12 Font类 342
B.5.13 Form类 342
B.5.15 Graphics类 343
B.5.14 Gauge类 343
B.5.16 Image类 344
B.5.17 ImageItem类 345
B.5.18 Item类 345
B.5.19 List类 345
B.5.20 Screen类 346
B.5.21 StringItem类 346
B.5.22 TextBox类 346
B.5.23 TextField类 347
B.5.24 Ticker类 347
B.6 Javax.micoreidtion.midlet包 347
B.7 Javax.micoreidtion.ms包 348
B.7.1 RecordComparator接口 348
B.7.2 RecordEnumeration接口 348
B.7.3 RecordFilter接口 348
B.7.4 RecordListener接口 348
B.7.5 RecordStore类 349