标题：Java学习手册
图书信息
明日科技 陈丹丹 李钟尉 李伟 等编著  ISBN 978-7-121-13064-9
2011年4月出版
定价：59.00元（含DVD光盘1张）
16开
496页
宣传语
编程成功之路从此开始！
内 容 简 介
本书以初学者为核心，全面介绍了使用Java进行程序开发的各种技术。在内容编排上由浅入深，让读者循序渐进地掌握编程技术；在内容讲解上结合丰富的图解和形象的比喻，帮助读者理解“晦涩难懂”的技术；在内容形式上附有大量的提示、技巧、说明、情景应用、实战练习等栏目，夯实读者编程技术，丰富编程经验。全书共20章，分为4篇进行介绍，第1篇为基础篇，包括Java开发前奏、搭建Java开发环境、 扎实Java语言基本语法、掌握算法和流程控制、使用Eclipse开发工具、探秘面向对象程序设计、初探Java数组；第2篇为核心篇，包括字符串处理、集合类、使用异常处理机制、掌握Java的I/O技术、精通多线程技术、枚举与泛型；第3篇为高级篇，包括Swing基础知识、JDBC技术、Swing高级组件、GUI事件处理机制、网络程序设计；第4篇为实战篇，包括进销存管理系统、 企业内部通信系统。
本书附有配套光盘，光盘中提供有本书所有程序的源代码、重点和难点的实例视频录像，其中，源代码全部经过精心测试，能够在Windows 2000、Windows XP、Windows 2003、Windows 7中编译和运行。
本书适合Java编程爱好者、初学者和中级开发人员使用，也适合作为大中专院校和培训机构的教材使用。
前 言
让想要学习编程的人员都能够学会编程!
我可以学会编程吗？
当然可以！即使你没有基础，即使你是非计算机专业毕业，即使你已过而立之年，甚至是只有初中毕业。我国最早的计算机反病毒专家、江民杀毒软件创始人王江民，初中毕业，38岁开始学习计算机，因为英语基础不好，很多人认为他根本没有学会编程的可能。但王江民没有感觉自己不行，硬是克服各种困难，成为我国最成功的程序开发人员之一。
王江民学习编程的诀窍是什么？
是实践。王江民说：“计算机是实践性非常强的学科。我搞计算机是用计算机，不是学计算机。” 王江民首先学的是BASIC语言。当时，为了辅导上小学的孩子，对软件一片空白的王江民竟然决定编写程序代替家长辅导。短短3个月，王江民就边学边实践，编好了一套数学语文教学软件，试过后效果奇佳，参加电脑报软件交流，被评为第二名，誉为“教育软件第一”。因为这次成功，极大激发了王江民对编程的兴趣，使他从此把精力转到了软件领域。
所以说：实践，是学习编程的最好方法，也是培养编程乐趣、捕获发展机遇的最佳途径。值得注意的是，不要等学完全部知识才去实践，要随时学习，随时实践，哪怕只学了一点点。
这本书适合我吗？
非常适合！本书是学习Java编程的最佳选择。所讲内容通俗易懂，易于学习，贴近实践。对于学习中的难点、重点，注意结合实际开发，采用情景应用的方式进行介绍和练习。本书光盘提供了完整的视频讲座，可以对照本书内容循序渐进进行学习。利用本书，不但可以学会编程，更能激发学习者理论联系实际的热情，开发出符合市场需求的软件和项目。
本书内容
本书分为基础篇、核心篇、高级篇和实战篇，共20章内容，内容安排依照从零起步、循序渐进的学习顺序，全面提高读者学、练、用的能力。本书知识结构如下图所示。
  
本书特色
 最基础、最易学
为了让初学者易于学习，本书力求做到内容通俗易懂、讲解寓教于乐。对于初学者难以理解的专业术语，本书都进行了形象的解释，有些还提供了例图。书后附录中又单独将专业术语提炼出来，供读者学习时参考。例如，在讲解父类与子类的关系时，为使读者更容易理解，笔者以图形、三角形与等边三角形为例，图形类可以作为所有图形的父类，其子类包括三角形、四边形等，三角形也可以作为父类，其子类包括等边三角形、等腰三角形等，Java中的继承关系也是如此，在进行讲解时，还配有如下图所示的图形。
  

语音视频讲座
为了方便读者学习本书的内容，本书附赠光盘中提供了视频讲座，讲解细腻、层次清楚、互动性强，不但可以加深读者对书中内容的理解，还可以引导读者掌握“是什么”、“为什么”、“怎么办”、“应注意些什么”的编程思维能力。所包含的视频不仅对书中的内容进行了详细介绍，还对相关的技术进行了有效的扩展，对开发中常犯的各种错误给出了视频解决方案。
 注重实用性
初学者经常会遇到这样的情况，书中讲解的技术能够理解，但不知道如何应用，例如，在学习抽象类时，读者能够自己定义抽象类并且能够从抽象类派生子类，但却不知道抽象类能够做什么，在哪里应用抽象类。本书在介绍技术时，注意强调技术的实用性，并且通过实例突出技术的应用价值。对于一些典型的应用，书中通过“情景应用”栏目进行重点介绍。
 实战互动练习
要掌握一项技术，最佳的方式就是多练习、多实践。本书每章都提供了多个供读者实践的实例任务，读者可以对照实例检验对知识的掌握情况。每个实例任务都分为“题目描述”、“技术指导”和“紧急救援”三部分，其中，“题目描述”给出了实例功能的详细描述和效果图，“技术指导”给出了开发思路和关键技术，“紧急救援”提供了下载实例源码和开发文档的链接地址。
超值DVD光盘
为了帮助读者学习和使用书中的实例，本书附赠有DVD光盘，里面不仅提供有书中所有实例项目的源代码、素材、光盘使用说明书，还提供有视频专题录像及5个项目源码。光盘目录如下图所示。
  
本书适用人群
本书是一部零基础编程图书，非常适合以下人员阅读：
 零基础的初学编程人员 初中级程序开发人员
编程爱好者 想学编程的各企、事业在职人员
大中专院校的老师和学生 相关培训机构的老师和学员
本书参与作者
本书由明日科技组织编写，参加编写的有陈丹丹、李钟尉、李伟、杨丽、顾丽丽、刘玲玲、孟范胜、董大永、李继业、尹强、张磊、王小科、王军、赵会东、赛奎春等。由于作者水平有限，疏漏和不足之处在所难免，欢迎广大读者提出宝贵意见。
非学无以广才，非志无以成学。
祝大家读书快乐！
明日科技
目 录
第1篇 基础篇
第1章 Java开发前奏 16
1.1 Java简介 17
1.1.1 什么是Java语言 17
1.1.2 与其他语言相比Java的优势 17
1.1.3 计算机语言中Java近几年的排行 18
1.1.4 Java的发展史 18
1.1.5 Java成功案例 19
1.2 Java特性 20
1.2.1 Java的应用领域 20
1.2.2 Java语法的特征 21
1.3 怎么学Java 22
1.3.1 Java程序员的成长之路 22
1.3.2 如何学好Java 23
1.4 本章小结 23
第2章 搭建Java开发环境 24
2.1 搭建Java开发环境 25
2.1.1 下载JDK 25
2.1.2 安装JDK 27
2.1.3 Windows系统下配置和测试JDK 27
2.2 Java程序的开发过程 29
2.3 一个简单的Java程序 30
2.3.1 构建Java程序 30
2.3.2 编译和运行Java程序 31
2.3.3 使用Java核心API文档 31
2.4 实战练习 32
2.4.1 下载JRE 32
2.4.2 将JDK安装到D盘 33
2.4.3 编写程序输出小猪脸图像 33
2.5 本章小结 34
第3章 扎实Java语言基本语法 35
3.1 使用常量与变量 36
3.1.1 常量的概念及使用 36
3.1.2 变量的概念及命名规则 37
3.1.3 变量的有效范围 38
3.2 认识基本的数据类型 41
3.2.1 整数类型 41
3.2.2 浮点类型 43
3.2.3 字符类型 43
3.2.4 布尔类型 44
3.2.5 基本数据类型间的转换 44
3.3 熟练运用Java运算符 45
3.3.1 赋值运算符 46
3.3.2 算术运算符 46
3.3.3 关系运算符 47
3.3.4 逻辑运算符 48
3.3.5 位运算符 50
3.3.6 其他运算符 53
3.3.7 运算符的优先级别及结合性 55
3.3.8 情景应用一：加密可以这样简单 55
3.3.9 情景应用二：位运算实现
3.3.9 两个变量值的互换 56
3.4 了解Java标识符与关键字 56
3.4.1 标识符 57
3.4.2 关键字 57
3.5 编码规范 57
3.5.1 Java命名规范 58
3.5.2 代码编写规则 58
3.6 Java程序的注释 59
3.6.1 单行注释 59
3.6.2 使用多行注释 59
3.6.3 文档注释的使用 60
3.7 实战练习 60
3.7.1 获取字符的unicode编码 60
3.7.2 计算长方形的周长 60
3.7.3 类型转换实例 61
3.8 本章小结 62
第4章 掌握算法和流程控制 63
4.1 认识算法 64
4.1.1 什么是算法 64
4.1.2 算法的描述方法 64
4.2 运用分支语句 65
4.2.1 简单的if条件语句 65
4.2.2 if-else条件语句 66
4.2.3 if-else-if多分支语句 68
4.2.4 switch多分支语句 69
4.2.5 if语句和switch语句的区别 72
4.2.6 情景应用一：根据消费金额计算折扣 73
4.2.7 情景应用二：判断某一年是否为闰年 74
4.3 学习循环语句 74
4.3.1 for循环语句 74
4.3.2 while循环语句 76
4.3.3 do-while循环语句 78
4.3.4 foreach语句 80
4.3.5 各循环语句间的区别 81
4.4 学习跳转语句 81
4.4.1 break跳转语句 81
4.4.2 continue跳转语句 82
4.4.3 return跳转语句 82
4.5 实战练习 83
4.5.1 判断用户输入月份所属的季节 83
4.5.2 输出乘法表 83
4.5.3 计算阶乘 84
4.6 本章小结 84
第5章 使用Eclipse开发工具 85
5.1 为什么要使用Eclipse开发工具 86
5.2 Eclipse的工作台 86
5.2.1 Eclipse工作台概述 86
5.2.2 透视图 87
5.2.3 编辑器 88
5.2.4 熟悉Eclipse的菜单栏和工具栏 89
5.3 怎样编写Java程序 90
5.3.1 新建Java项目 90
5.3.2 新建Java类 91
5.3.3 编写Java代码 93
5.3.4 运行程序 94
5.3.5 保存并关闭Java项目 94
5.4 探秘Eclipse资源管理 95
5.4.1 导入Java类 95
5.4.2 导入Java项目 96
5.4.3 导出Java项目 97
5.5 本章小结 98
第6章 探秘面向对象程序设计 99
6.1 什么是面向对象程序设计 100
6.1.1 面向对象程序设计的概述 100
6.1.2 面向对象程序设计的特点 101
6.2 解密类和对象 102
6.2.1 定义类 103
6.2.2 成员变量和局部变量 104
6.2.3 构造方法的概念及用途 105
6.2.4 创建对象 106
6.2.5 使用对象 107
6.2.6 销毁对象 108
6.3 使用包 108
6.3.1 包的概念 108
6.3.2 创建包 108
6.3.3 使用包中的类 109
6.4 了解Java中的继承关系 110
6.4.1 继承的概念 110
6.4.2 创建子类 110
6.4.3 继承的使用原则 111
6.4.4 使用this关键字 112
6.4.5 使用super关键字 112
6.5 认识多态技术 113
6.5.1 方法的重载 114
6.5.2 方法的覆盖 115
6.6 抽象类 116
6.7 final类与final方法 119
6.7.1 final类 119
6.7.2 final方法 120
6.8 掌握Java中的接口 120
6.8.1 定义接口 121
6.8.2 实现接口 121
6.9 情景应用 123
6.9.1 情景应用一：定义不能重写的方法 123
6.9.2 情景应用二：温度转换 124
6.10 实战练习 125
6.10.1 定义员工类 125
6.10.2 多态方式计算图像面积 125
6.10.3 求解汉诺塔问题 126
6.11 本章小结 126
第7章 初探数组 127
7.1 一维数组 128
7.1.1 声明一维数组 128
7.1.2 创建一维数组 128
7.1.3 初始化一维数组 130
7.1.4 使用一维数组 131
7.2 二维数组 133
7.2.1 声明二维数组 133
7.2.2 创建二维数组 133
7.2.3 初始化二维数组 135
7.2.4 使用二维数组 135
7.3 操作数组 136
7.3.1 复制数组 137
7.3.2 排序数组 138
7.3.3 比较数组 139
7.3.4 搜索数组 140
7.3.5 填充数组 141
7.3.6 传递数组 142
7.4 实战练习 143
7.4.1 使用冒泡排序法对数组进行排序 143
7.4.2 将二维数组中的行列互换 144
7.5 本章小结 144
第2篇 核心篇
第8章 字符串处理 146
8.1 初识字符串 147
8.1.1 字符串常量 147
8.1.2 声明字符串变量 147
8.1.3 创建字符串 147
8.2 连接字符串 149
8.2.1 字符串与字符串的连接 149
8.2.2 字符串与其他类型数据的连接 150
8.3 字符串操作 151
8.3.1 比较字符串 152
8.3.2 获取字符串的长度 154
8.3.3 字符串的大小写转换 154
8.3.4 查找字符串 155
8.3.5 获取字符串的子字符串 157
8.3.6 替换或去除字符串中的空格 157
8.3.7 分割字符串 158
8.4 格式化字符串 159
8.4.1 常规类型的格式化 159
8.4.2 日期和时间字符串格式化 161
8.4.3 情景应用一：格式化当前日期 165
8.4.4 情景应用二：获取字符串中的汉字个数 166
8.5 使用StringBuilder类 167
8.5.1 创建字符串生成器 167
8.5.2 字符串生成器的应用 168
8.6 使用正则表达式 170
8.7 实战练习 172
8.7.1 将数字格式化为货币字符串 172
8.7.2 判断字符串中是否包含有数字字符 172
8.7.3 验证IP地址是否有效 173
8.8 本章小结 173
第9章 集合类 174
9.1 集合类概述 175
9.2 Collection接口 175
9.2.1 addAll()方法 175
9.2.2 removeAll()方法 176
9.2.3 retainAll()方法 177
9.2.4 containsAll()方法 178
9.2.5 toArray(T[] t)方法 179
9.3 List集合 179
9.3.1 List接口的实现类 180
9.3.2 List的用法 180
9.3.3 情景应用：List集合传递学生信息 182
9.4 Set集合 183
9.4.1 使用HashSet类 183
9.4.2 使用TreeSet类 185
9.5 Map集合 187
9.5.1 Map接口 187
9.5.2 Map接口的实现类 188
9.5.3 情景应用：实现省市级联输出 189
9.6 实战练习 190
9.6.1 去除List集合中的重复值 190
9.6.2 使用Map集合保存电话信息 191
9.7 本章小结 191
第10章 使用异常处理机制 192
10.1 什么是异常处理 193
10.2 常见异常列表 193
10.3 Java异常处理 194
10.3.1 错误 194
10.3.2 捕获异常 195
10.4 内置异常类 196
10.4.1 Error类 197
10.4.2 Exception类 197
10.5 自定义异常 199
10.6 在方法中抛出异常 200
10.6.1 使用throws关键字抛出异常 200
10.6.2 使用throw关键字抛出异常 201
10.7 异常处理使用原则 202
10.8 实战练习 202
10.8.1 自定义异常类 202
10.8.2 使用try-catch语句捕获异常 203
10.8.3 捕捉求负数的公约数异常 203
10.9 本章小结 204
第11章 掌握Java的I/O技术 205
11.1 Java的I/O处理方式 206
11.1.1 I/O的基本模式 206
11.1.2 Java提供的流类 206
11.1.3 输入流 207
11.1.4 输出流 208
11.2 以byte为数据单位的流类 208
11.2.1 InputStream类 209
11.2.2 OutputStream类 210
11.3 以char为数据单位的流类 211
11.3.1 Reader类 211
11.3.2 Writer 212
11.4 常用I/O处理方式 213
11.4.1 文件类 214
11.4.2 文件的字节输入输出流 216
11.4.3 文件的字符输入输出流 218
11.4.4 带缓存的输入输出流 221
11.4.5 对象序列化 223
11.4.6 情景应用一：文件锁定 225
11.4.7 情景应用二：将用户输入的内容保存到文本文件 225
11.5 对文件及文件夹进行操作 226
11.5.1 复制文件 226
11.5.2 复制文件夹 227
11.5.3 删除文件 229
11.5.4 分行写入文件 229
11.6 实战练习 230
11.6.1 字符的简单加密与解密 230
11.6.2 将用户信息写入到文件 231
11.6.3 获取磁盘中所有的文件名 231
11.7 本章小结 232
第12章 精通多线程技术 233
12.1 线程概述 234
12.1.1 进程 234
12.1.2 线程 234
12.2 线程的创建 235
12.2.1 继承Thread类 236
12.2.2 实现Runnable接口 237
12.2.3 两种创建线程方式的比较 239
12.3 线程的生命周期 239
12.4 线程的优先级及执行顺序 240
12.4.1 线程的优先级 240
12.4.2 线程的执行顺序 241
12.5 线程的控制 244
12.5.1 线程的启动 244
12.5.2 线程的挂起 244
12.5.3 结束线程 248
12.5.4 线程组 249
12.5.5 情景应用一：使用守护线程 249
12.5.6 情景应用二：线程的插队 250
12.6 线程的同步 251
12.6.1 线程安全 252
12.6.2 线程同步机制 253
12.7 线程通信 254
12.8 多线程产生死锁 258
12.9 实战练习 258
12.9.1 利用线程定时输出信息 258
12.9.2 查看JVM中的线程名 259
12.9.3 查看线程的状态 259
12.10 本章小结 260
第13章 枚举与泛型 261
13.1 使用枚举类型 262
13.1.1 使用枚举类型设置常量 262
13.1.2 深入了解枚举类型 264
13.1.3 使用枚举类型的优势 269
13.1.4 情景应用一：遍历枚举接口的元素 269
13.1.5 情景应用二：选择合适的枚举元素 270
13.2 使用泛型 270
13.2.1 回顾“向上转型”与“向下转型” 271
13.2.2 定义泛型类 272
13.2.3 泛型的常规用法 273
13.2.4 泛型的高级用法 276
13.2.5 泛型总结 278
13.3 实战练习 278
13.3.1 判断枚举类型的值 278
13.3.2 使用通配符定义泛型类 279
13.4 本章小结 279
第3篇 高级篇
第14章 Swing基础知识 282
14.1 Swing概述 283
14.1.1 Swing特点 283
14.1.2 Swing包 283
14.1.3 常用Swing组件概述 284
14.2 常见窗体 284
14.2.1 JFrame窗体 284
14.2.2 JDialog窗体 286
14.3 掌握基本组件 287
14.3.1 标签组件 288
14.3.2 按钮组件 289
14.3.3 文本组件 292
14.3.4 列表组件 294
14.3.5 情景应用一：实现按钮关键字描红 297
14.3.6 情景应用二：鼠标经过时按钮放大 298
14.4 向窗体中添加容器 299
14.4.1 JPanel面板的应用 299
14.4.2 JScrollPane面板的应用 300
14.4.3 分割面板的应用 301
14.4.4 选项卡面板的应用 303
14.5 选择合理的布局方式 305
14.5.1 灵活指定组件位置的绝对布局 305
14.5.2 窗体默认的边界布局 306
14.5.3 奇妙的网格布局 307
14.5.4 按指定方向摆放组件的流式布局 308
14.6 常用的事件监听器 309
14.6.1 事件监听器概述 309
14.6.2 事件监听器 310
14.6.3 动作事件（ActionEvent）监听器 311
14.6.4 焦点事件（FocusEvent）监听器 312
14.7 实战练习 313
14.7.1 简单的计数器 313
14.7.2 通过单选按钮选择显示图片 313
14.7.3 为文本域设置背景 314
14.8 本章小结 314
第15章 JDBC技术 315
15.1 了解数据库基础知识 316
15.1.1 生活中的数据库 316
15.1.2 了解数据库的特点及分类 316
15.2 JDBC技术 317
15.2.1 什么是JDBC技术 317
15.2.2 为什么要在项目中添加数据库驱动 317
15.3 认识JDBC中不可缺少的类与接口 318
15.3.1 管理数据库驱动类DriverManager 318
15.3.2 数据库连接接口Connection 318
15.3.3 发送SQL语句接口Statement 319
15.3.4 可执行动态SQL的接口PreparedStatement 319
15.3.5 查询结果集接口ResultSet 320
15.4 操作数据库的步骤 320
15.4.1 加载JDBC驱动程序 321
15.4.2 创建数据库连接 321
15.4.3 执行SQL语句 322
15.4.4 获得查询结果 323
15.4.5 关闭连接 323
15.5 常见的数据操作 324
15.5.1 添加数据 324
15.5.2 修改数据 325
15.5.3 删除数据 326
15.5.4 查询数据 326
15.5.5 使用预处理语句 328
15.6 实战练习 330
15.6.1 查询SQL Server数据表中前三条数据 330
15.6.2 查询编程词典9月份的总销售量 331
15.6.3 笛卡儿乘积查询 332
15.7 本章小结 332
第16章 Swing高级组件 333
16.1 为窗体添加菜单 334
16.1.1 创建菜单栏 334
16.1.2 创建菜单 334
16.1.3 创建菜单项 335
16.1.4 创建弹出式菜单 337
16.1.5 创建个性化菜单 337
16.2 实现为窗体添加工具栏 340
16.2.1 创建工具栏 340
16.2.2 为工具栏添加工具按钮 341
16.3 使用对话框 342
16.3.1 打开本地文件的文件对话框 342
16.3.2 为用户提供信息对话框 345
16.3.3 色彩斑斓的颜色选择对话框 346
16.3.4 实现确认操作的确认对话框 347
16.4 表格组件 349
16.4.1 实现创建表格 349
16.4.2 表格模型 350
16.4.3 维护表格模型 351
16.5 使用系统托盘 354
16.5.1 实现获取系统托盘 354
16.5.2 怎样为系统托盘添加图标 355
16.5.3 添加弹出菜单 355
16.6 实战练习 357
16.6.1 明日版QQ界面设计 357
16.6.2 设计选择日期的对话框 357
16.6.3 在表格中显示销售记录 358
16.7 本章小结 359
第17章 GUI事件处理机制 360
17.1 掌握窗体事件 361
17.1.1 捕获窗体焦点变化事件 361
17.1.2 捕获窗体状态变化事件 362
17.1.3 捕获其他窗体事件 363
17.1.4 情景应用一：创建总显示在最上方的窗体 365
17.1.5 情景应用二：创建内部子窗体 365
17.2 掌握鼠标操作 366
17.2.1 鼠标事件监听器 366
17.2.2 鼠标事件处理 367
17.3 掌握键盘控制事件 368
17.3.1 键盘事件监听器 368
17.3.2 键盘事件处理 369
17.4 选项事件 371
17.5 表格模型事件 372
17.6 实战练习 375
17.6.1 定义只能输入整数或小数的文本框 375
17.6.2 设置文本对齐方式 375
17.7 本章小结 376
第18章 网络程序设计 377
18.1 网络程序设计基础 378
18.1.1 局域网和广域网 378
18.1.2 网络协议 378
18.2 端口与套接字 379
18.2.1 端口 379
18.2.2 套接字 380
18.3 学习TCP编程原理 380
18.3.1 什么是TCP协议 380
18.3.2 掌握TCP编程的常用类 381
18.3.3 如何编写TCP程序 384
18.4 学习UDP编程原理 385
18.4.1 什么是UDP协议 386
18.4.2 掌握UDP编程的常用类 386
18.4.3 如何编写UDP程序 387
18.5 实战练习 390
18.5.1 聊天室 390
18.5.2 获取主机名、主机地址和本机地址 390
18.5.3 向客户机发送信息 391
18.6 本章小结 392
第4篇 实战篇
第19章 进销存管理系统 394
19.1 需求分析 395
19.1.1 需求分析 395
19.1.2 可行性分析 395
19.2 系统设计 395
19.2.1 项目规划 395
19.2.2 功能结构分析 396
19.3 数据库设计 396
19.3.1 E-R图 396
19.3.2 数据表概要说明 398
19.3.3 主要数据表的结构 399
19.4 系统登录模块设计 401
19.4.1 登录功能设计 401
19.4.2 系统登录模块设计 401
19.5 程序主界面的设计 404
19.5.1 创建主窗口 404
19.5.2 初始化程序主界面的initialize()方法 405
19.5.3 添加菜单和工具按钮的方法 406
19.5.4 创建Action对象的addFrameAction()方法 408
19.5.5 获取功能窗体的getIFrame()方法 410
19.6 基础信息模块设计 410
19.6.1 商品信息管理模块设计 410
19.6.2 商品添加功能设计 411
19.6.3 设置组件布局位置的
19.6.3 setupComponent()方法 414
19.6.4 商品修改与删除功能设计 414
19.7 进货管理模块设计 417
19.7.1 进货单管理功能设计 417
19.7.2 初始化表格的
14.3.5 initTable()方法 421
19.7.3 初始化商品下拉选择框的initSpBox()方法 421
19.7.4 初始化进货单窗体的initTasks类 422
19.7.5 初始化进货票号文本框的initPiaoHao()方法 423
19.8 销售管理模块设计 423
19.8.1 销售单管理功能设计 423
19.8.2 初始化销售单窗体的initTasks类 425
19.9 库存管理模块设计 426
19.9.1 库存盘点功能设计 426
19.9.2 库存价格调整功能设计 429
19.10 查询统计模块设计 430
19.10.1 销售排行功能设计 430
19.10.2 执行销售排行功能的
14.3.5 事件监听器 432
19.11 系统设置模块设计 432
19.11.1 操作员管理 432
19.11.2 权限管理 435
19.12 数据库模块 437
19.12.1 数据库连接 437
19.12.2 获取用户信息的
14.3.5 getUser()方法 438
19.12.3 添加商品信息的addSp()方法 439
19.12.4 获取所有商品信息的getSpInfos()方法 439
19.12.5 添加入库信息的insertRukuInfo()方法 440
19.12.6 获取最大入库编号的getRuKuMainMaxId()
14.3.5 方法 441
19.12.7 更新用户信息的updateUser()方法 442
19.13 本章小结 442
第20章 企业内部通信系统 443
20.1 系统分析 444
20.1.1 需求分析 444
20.1.2 可行性分析 444
20.1.3 编写项目计划书 445
20.2 系统设计 447
20.2.1 系统目标 447
20.2.2 系统功能结构 447
20.2.3 数据库设计 447
20.2.4 系统预览 449
20.2.5 文件夹组织结构 450
20.3 主窗体设计 450
20.3.1 创建主窗体 451
20.3.2 记录窗体位置 454
20.4 公共模块设计 455
20.4.1 数据库操作类 455
20.4.2 系统工具类 460
20.5 系统托盘模块设计 464
20.5.1 系统托盘模块概述 464
20.5.2 系统托盘模块技术分析 464
20.5.3 系统托盘模块实现 465
20.6 系统工具模块设计 466
20.6.1 系统工具模块概述 466
20.6.2 系统工具模块技术分析 467
20.6.3 系统工具模块实现 467
20.7 用户管理模块设计 472
20.7.1 用户管理模块概述 472
20.7.2 用户管理模块技术分析 472
20.7.3 用户管理模块实现 473
20.8 通信模块设计 477
20.8.1 通信模块概述 477
20.8.2 通信模块技术分析 478
20.8.3 通信模块实现 478
20.9 开发技巧与难点分析 482
20.10 使用JDK 6新增的系统托盘 482
20.11 本章小结 483
附录A 专业术语表 484