标题：Java典型模块与项目实战大全
基本信息
作者： 周华清    李为民    张昌龙   
出版社：清华大学出版社  [1]ISBN：9787302261520
上架时间：2011-11-15
出版日期：2011 年11月
开本：16开
页码：1
版次：1-1
所属分类： 计算机
编辑推荐
涵盖Java语言6大技术要点，详讲Java语法的最新特性
精选25个典型模块和4个项目案例，实战Java应用开发
计划在51CTO等专业技术网站的读书频道宣传；
计划在Java论坛做推广；
计划在互动、当当、卓越等网络书店宣传； 
内容简介
《java典型模块与项目实战大全》以实战开发为原则，以java热门开发技术与项目案例开发为主线，通过java开发中最常见的25个典型模块和4个完整的项目案例，详细介绍java语言的特性、线程开发、图形用户开发（gui）、文件i/o操作、applet程序、网络编程等知识。
《java典型模块与项目实战大全》附带1张dvd光盘，内容为与本书配套的多媒体教学视频与源代码，以及免费赠送的java开发教学视频等资料。
《java典型模块与项目实战大全》共32章，分为7篇。涵盖的主要内容有搭建java开发环境、java面向对象编程、java新特性、学生并发接水、模拟做饭场景、火车站售票系统、生产者与消费者问题、关机工具、典型的图形用户界面、计算器、秒表、捉迷藏游戏、鼠标绘直线、指针时钟项目、控制动画项目、记事本、拼图游戏、文件属性查看器、文件内容查看器、日记簿、查找和替换项目、图像轮显动画项目、applet事件监听项目、动画播放项目、网络聊天室、ftp服务器客户端、web服务器、qq聊天工具、人员信息管理项目、中国象棋游戏、俄罗斯方块游戏网络版、图书管理系统项目等。
《java典型模块与项目实战大全》注重编程思想与实际开发相结合，书中的每个技术点都配备了具有典型性和实用价值的应用开发实例，适合想要学习java语言的人员阅读，尤其适合有一定java语言基础和想提高开发java语言经验的程序员阅读。 
作译者
本书提供作译者介绍
周华清 毕业于长春科技大学。从事计算机教学和软件开发10余年，擅长Java平台的各种开发技术。现任职于东华理工大学，负责Java及其应用领域的课程设置、教学和科研开发及评估、学生学习结果评估以及远程教学的开发和应用。曾在国内外杂志发表过多篇论文，并参与了多个省级项目的开发。
李为民 国务院学科评议组委员，国家863计划专家组成员，国家重点学科带头人。现任空军工程大学军事运筹学教授，常年参与各类大型项目的开发和Java平台的研究。曾获国家科技进步二等奖1项，获省部级科研教学奖.. 
目录
《java典型模块与项目实战大全》 
第1篇 java开发必备基础 
第1章 搭建java开发环境 2 
教学视频：18分钟 
1.1 java的过去、现在和未来 2 
1.1.1 java的历史 2 
1.1.2 java的语言特点 3 
1.1.3 java api简介 3 
1.1.4 java未来发展 4 
1.2 java程序设计环境 5 
1.2.1 命令行工具——jdk 6.0 5 
1.2.2 安装工具包jdk 6 
1.2.3 设置jdk环境 8 
1.2.4 集成开发环境安装——myeclipse 8.5 10 
1.2.5 myeclipse的一些常用操作 11 
1.3 创建和运行java程序 14 
1.3.1 手工创建、编译和运行java程序 14 
1.3.2 在myeclipse 8.5中创建、运行、调试和管理java项目 15 
1.4 小结 16 
第2章 java面向对象编程 17 
.　　 教学视频：13分钟 
2.1 面向对象的一些概念 17 
2.1.1 面向对象涉及的概念 17 
2.1.2 类和对象 19 
2.2 面向对象的一些特性 20 
2.2.1 继承特性 20 
2.2.2 多态特性 21 
2.2.3 封装特性 22 
2.3 java中实现的面向对象特性 22 
2.3.1 定义类 22 
2.3.2 创建对象 23 
2.3.3 实现继承 23 
2.3.4 实现多态 24 
2.3.5 实现封装 26 
2.4 小结 27 
第3章 java新特性 28 
教学视频：29分钟 
3.1 java的一些简单新特性 28 
3.1.1 静态导入 28 
3.1.2 可变参数函数 30 
3.1.3 增强版for循环 31 
3.1.4 基本数据的拆、装箱操作（autoboxing和unboxing） 32 
3.2 枚举 34 
3.2.1 枚举的实现原理 34 
3.2.2 枚举的简单应用 36 
3.2.3 枚举的高级特性 37 
3.3 反射 39 
3.3.1 反射的基石——class类 39 
3.3.2 反射的基本应用 41 
3.3.3 反射的高级应用 46 
3.4 标注 49 
3.4.1 标注的简单使用 49 
3.4.2 jdk的内置标注 51 
3.5 泛型 53 
3.5.1 为什么要使用泛型 54 
3.5.2 泛型的一些特性 57 
3.5.3 泛型的通配符 59 
3.6 类加载器 62 
3.6.1 什么是类加载器 63 
3.6.2 什么是类加载器的委派模型 64 
3.6.3 编写一个自己的加载器 67 
3.7 动态代理 73 
3.7.1 什么是代理 73 
3.7.2 动态代理基础类 74 
3.7.3 invocationhandler接口 78 
3.7.4 动态代理类的设计模式 81 
3.8 小结 83 
第2篇 线程开发 
第4章 学生并发接水（线程thread） 86 
教学视频：9分钟 
4.1 学生并发接水原理 86 
4.1.1 项目结构框架分析 86 
4.1.2 项目功能业务分析 86 
4.2 不排队形式学生并发接水 87 
4.2.1 水龙头类 88 
4.2.2 学生类 88 
4.2.3 测试类 89 
4.3 学生并发接水的其他形式 90 
4.3.1 “排队接水”水龙头类 90 
4.3.2 “接完水后一起回教室”水龙头类 90 
4.4 知识点扩展——线程的基础知识 91 
4.4.1 为什么要使用线程 92 
4.4.2 多线程程序的编写方式 93 
4.5 小结 98 
第5章 模拟做饭场景（线程的join()方法） 99 
教学视频：7分钟 
5.1 做饭场景原理 99 
5.1.1 项目结构框架分析 99 
5.1.2 项目功能业务分析 99 
5.2 纷乱的做饭场景 100 
5.2.1 儿子的类 100 
5.2.2 妈妈的类 101 
5.2.3 做饭场景的类 102 
5.2.4 修改后的妈妈类 102 
5.3 知识点扩展——线程的状态 103 
5.3.1 线程的创建状态 103 
5.3.2 线程的暂停状态 104 
5.3.3 线程的结束状态 106 
5.4 小结 109 
第6章 火车站售票系统（线程安全知识） 110 
教学视频：12分钟 
6.1 火车站售票系统原理 110 
6.1.1 项目结构框架分析 110 
6.1.2 项目功能业务分析 111 
6.2 没有实现线程安全的火车票售票系统 112 
6.2.1 火车票的类 112 
6.2.2 售票台的类 113 
6.2.3 实现线程安全的火车票售票系统 113 
6.3 知识点扩展——线程的同步知识 115 
6.3.1 为什么要使用同步机制 115 
6.3.2 synchronized的同步块 117 
6.3.3 synchronized的同步方法 119 
6.3.4 死锁的问题 122 
6.4 小结 124 
第7章 生产者与消费者问题（线程通信知识） 125 
教学视频：10分钟 
7.1 生产者与消费者原理 125 
7.1.1 项目结构框架分析 125 
7.1.2 项目功能业务分析 125 
7.2 无线程通信的生产者与消费者项目 126 
7.2.1 生产者类 127 
7.2.2 消费者类 128 
7.2.3 储存库类 128 
7.2.4 测试类 129 
7.3 实现线程通信的生产者与消费者项目 130 
7.3.1 生产者和消费者的类 130 
7.3.2 储存库的类 131 
7.4 知识点扩展——线程的通信知识 132 
7.4.1 线程通信的基本知识 132 
7.4.2 线程通信的具体实例 134 
7.5 小结 136 
第8章 关机工具（timer类+系统命令） 137 
教学视频：5分钟 
8.1 关机工具原理 137 
8.1.1 项目结构框架分析 137 
8.1.2 项目功能业务分析 137 
8.2 关机工具的实现过程 139 
8.2.1 关机工具的类 139 
8.2.2 关机工具的工具类 143 
8.3 知识点扩展——关机工具项目涉及的知识 144 
8.3.1 timer和timertask类 144 
8.3.2 shutdown命令 147 
8.3.3 通过shutdown命令实现网络远程关机 150 
8.4 小结 152 
第3篇 gui（图形用户界面）开发 
第9章 典型的图形用户界面（各种组件） 154 
教学视频：15分钟 
9.1 label和button的用户界面 154 
9.1.1 分析按钮和面板的用户界面 154 
9.1.2 按钮和面板的用户界面 155 
9.1.3 组件button和label的基本知识 156 
9.2 复选框的用户界面 157 
9.2.1 分析复选框的用户界面 157 
9.2.2 按钮和面板的用户界面 158 
9.2.3 组件checkbox和checkboxgroup的基本知识 159 
9.3 下拉菜单和列表的用户界面 160 
9.3.1 分析下拉菜单和列表的用户界面 161 
9.3.2 下拉菜单和列表的用户界面 162 
9.3.3 choice和list组件的基本知识 164 
9.4 输入的用户界面 165 
9.4.1 分析输入的用户界面 165 
9.4.2 输入的用户界面 167 
9.4.3 textfield和textarea组件的基本知识 169 
9.5 滚动条的用户界面 171 
9.5.1 分析滚动条的用户界面 171 
9.5.2 滚动条的用户界面 172 
9.5.3 滚动组件的基本知识 174 
9.6 菜单的用户界面 175 
9.6.1 分析菜单组件的用户界面 175 
9.6.2 菜单的用户界面 177 
9.6.3 菜单组件的基本知识 179 
9.7 对话框的用户界面 182 
9.7.1 分析对话框和文件对话框的用户界面 182 
9.7.2 对话框的用户界面 184 
9.7.3 dialog和filedialog组件的基本知识 187 
9.8 小结 188 
第10章 计算器（布局管理器） 189 
教学视频：5分钟 
10.1 计算器原理 189 
10.1.1 项目结构框架分析 189 
10.1.2 项目功能业务分析 189 
10.2 计算器的实现过程 191 
10.3 知识点扩展——事件机制的高级知识 193 
10.3.1 为什么需要版面的配置 194 
10.3.2 java语言中的各种布局管理器 195 
10.4 小结 201 
第11章 秒表（事件+线程） 202 
教学视频：7分钟 
11.1 秒表原理 202 
11.1.1 项目结构框架分析 202 
11.1.2 项目功能业务分析 202 
11.2 秒表的实现过程 203 
11.2.1 秒表类 203 
11.2.2 测试秒表的类 206 
11.3 知识点扩展——事件机制的基础知识 206 
11.3.1 事件处理机制 206 
11.3.2 window事件 208 
11.3.3 mouse事件 210 
11.3.4 key事件 213 
11.3.5 其他底层事件 216 
11.3.6 事件的高级编写方法 217 
11.4 小结 219 
第12章 捉迷藏游戏（事件） 220 
教学视频：5分钟 
12.1 捉迷藏游戏原理 220 
12.1.1 项目结构框架分析 220 
12.1.2 项目功能业务分析 220 
12.2 捉迷藏游戏的实现过程 221 
12.2.1 捉迷藏游戏项目的原理 221 
12.2.2 自定义按钮类 222 
12.2.3 测试的类 223 
12.3 知识点扩展——事件机制的高级知识 223 
12.3.1 事件多重应用 223 
12.3.2 事件处理的详细过程 228 
12.4 小结 230 
第13章 鼠标绘直线（绘图+事件） 231 
教学视频：8分钟 
13.1 鼠标绘直线原理 231 
13.1.1 项目结构框架分析 231 
13.1.2 项目功能业务分析 231 
13.2 鼠标绘直线的实现过程 233 
13.2.1 直线的类 233 
13.2.2 实现窗口类——通过paint()方法 234 
13.2.3 实现窗口类——通过双缓冲技术 236 
13.3 知识点扩展——画图的基础知识 237 
13.3.1 画图的基础知识 237 
13.3.2 各种类型对象的绘制 239 
13.4 小结 245 
第14章 指针时钟项目（swing组件+时间算法） 246 
教学视频：7分钟 
14.1 指针时钟原理 246 
14.1.1 项目结构框架分析 246 
14.1.2 项目功能业务分析 247 
14.2 指针时钟的实现过程 247 
14.2.1 指针时钟的界面 247 
14.2.2 绘制指针时钟的类 249 
14.3 知识点扩展——从awt到swing的过渡 253 
14.3.1 窗口类jframe 253 
14.3.2 按钮类jbutton和面板类jlabel 254 
14.3.3 单选按钮和复选框组件 258 
14.3.4 选择框组件 261 
14.3.5 输入框组件 263 
14.4 小结 265 
第15章 控制动画项目 （jslider和timer组件） 266 
教学视频：7分钟 
15.1 控制动画原理 266 
15.1.1 项目结构框架分析 266 
15.1.2 项目功能业务分析 267 
15.2 控制动画的实现过程 267 
15.2.1 控制动画的主界面 267 
15.2.2 控制动画的逻辑 269 
15.3 知识点扩展——jslider和timer组件的基础知识 272 
15.3.1 使用jslider组件创建无刻度的滑杆 272 
15.3.2 使用jslider组件创建带数字刻度的滑杆 275 
15.3.3 使用jslider组件创建带字符刻度的滑杆 277 
15.3.4 jslider组件的高级应用 279 
15.3.5 swing中的多线程 283 
15.3.6 timer组件的基础知识 288 
15.3.7 timer组件的应用 289 
15.4 小结 293 
第16章 记事本（对话框组件） 294 
教学视频：54分钟 
16.1 记事本原理 294 
16.1.1 项目结构框架分析 294 
16.1.2 项目功能业务分析 294 
16.2 记事本的实现过程 300 
16.2.1 实现记事本的界面 300 
16.2.2 实现菜单功能 303 
16.2.3 文件类型的过滤 306 
16.3 记事本的实现过程——字体设置对话框 307 
16.3.1 字体设置对话框——主界面 307 
16.3.2 字体设置对话框——jpanel1组件界面 310 
16.3.3 字体设置对话框——其他组件 312 
16.4 小结 313 
第17章 拼图游戏（gui综合应用） 314 
教学视频：20分钟 
17.1 拼图游戏原理 314 
17.1.1 项目结构框架分析 314 
17.1.2 项目功能业务分析 314 
17.1.3 拼图游戏项目的原理 316 
17.2 拼图游戏的实现过程 317 
17.2.1 实现移动功能的按钮类 317 
17.2.2 主面板的类 318 
17.2.3 主窗口的类 320 
17.3 小结 322 
第4篇 文件操作和访问 
第18章 文件属性查看器（gui+文件操作） 324 
教学视频：6分钟 
18.1 文件属性查看器原理 324 
18.1.1 项目结构框架分析 324 
18.1.2 项目功能业务分析 324 
18.2 文件属性查看器项目 326 
18.2.1 实现显示文件信息的自定义窗口 326 
18.2.2 自定义窗口的显示 329 
18.3 知识点扩展——文件的操作和访问 329 
18.3.1 通过fileop类实现文件创建和删除功能 329 
18.3.2 通过filedir类实现列举文件和目录的功能 331 
18.3.3 file类提供的属性和方法 332 
18.3.4 文件访问的基本概念 334 
18.3.5 文件的基本访问方式——字节方式 336 
18.3.6 文件的基本访问方式——字符方式 338 
18.3.7 文件的高级访问方式 339 
18.4 小结 342 
第19章 文件内容查看器（gui+文件访问） 343 
教学视频：6分钟 
19.1 文件内容查看器原理 343 
19.1.1 项目结构框架分析 343 
19.1.2 项目功能业务分析 343 
19.2 文件内容查看器项目 345 
19.2.1 设计项目的界面——文件内容查看器输入界面 345 
19.2.2 “打开”菜单项的处理方法 348 
19.2.3 单击列表选项的处理方法 348 
19.3 知识点扩展——管道的访问 349 
19.3.1 管道的访问——字节方式 350 
19.3.2 管道的访问——字符方式 351 
19.4 知识点扩展——内存的访问 353 
19.4.1 内存的访问——字节方式 353 
19.4.2 内存的访问——字符和字符串方式 354 
19.5 小结 356 
第20章 日记簿（gui+文件访问和操作） 357 
教学视频：30分钟 
20.1 日记簿原理 357 
20.1.1 项目结构框架分析 357 
20.1.2 项目功能业务分析 357 
20.2 日记簿项目 359 
20.2.1 设计项目的界面——日记薄输入界面 360 
20.2.2 “保存”按钮的事件处理 363 
20.2.3 “查看日记”按钮的事件处理 364 
20.2.4 设计项目的界面——日记列表界面 365 
20.2.5 “查看”按钮的事件处理 367 
20.2.6 “删除”按钮的事件处理 368 
20.3 知识点扩展——过滤流的基础知识 368 
20.3.1 过滤流的缓存（buffering）类 368 
20.3.2 过滤流实现字节和字符相互转换类 372 
20.3.3 过滤流特定数据类型类 374 
20.3.4 过滤流对象序列化类 378 
20.3.5 过滤流打印类 381 
20.4 小结 383 
第21章 查找和替换项目（gui+字符串处理） 384 
教学视频：10分钟 
21.1 查找和替换原理 384 
21.1.1 项目结构框架分析 384 
21.1.2 项目功能业务分析 384 
21.2 查找和替换项目——利用awt组件 386 
21.2.1 设计项目的界面——查找和替换输入界面 386 
21.2.2 各种按钮的事件处理 389 
21.2.3 字符串处理的类 391 
21.3 查找和替换项目——利用swing组件 392 
21.3.1 设计项目的界面——查找和替换输入界面 392 
21.3.2 各种按钮的事件处理 394 
21.4 小结 395 
第5篇 applet程序开发 
第22章 图像轮显动画项目（显示图像+多线程） 398 
教学视频：5分钟 
22.1 图像轮显动画原理 398 
22.1.1 项目结构框架分析 398 
22.1.2 项目功能业务分析 398 
22.2 图像轮显动画项目 400 
22.3 知识点扩展——applet程序的基础知识 402 
22.3.1 applet程序的执行过程 402 
22.3.2 applet程序的执行环境 402 
22.3.3 applet程序的输出 403 
22.3.4 applet程序的标记 403 
22.3.5 参数的传递 404 
22.3.6 applet程序的相关方法 406 
22.4 小结 409 
第23章 applet事件监听项目 （事件处理机制） 410 
教学视频：5分钟 
23.1 applet事件监听原理 410 
23.1.1 项目结构框架分析 410 
23.1.2 项目功能业务分析 410 
23.2 applet事件监听项目 412 
23.2.1 事件监听的类 412 
23.2.2 承载事件监听的页面 414 
23.3 知识点扩展——myeclipse开发环境对applet程序的支持 414 
23.3.1 myeclipse开发环境对applet项目的支持 415 
23.3.2 myeclipse开发环境对jar的支持 419 
23.4 小结 422 
第24章 动画播放项目（音频操作+多线程） 423 
教学视频：5分钟 
24.1 动画播放原理 423 
24.1.1 项目结构框架分析 423 
24.1.2 项目功能业务分析 423 
24.2 动画播放项目 425 
24.2.1 动画的类 425 
24.2.2 控制动画的类 427 
24.3 知识点扩展——applet程序的高级知识 428 
24.3.1 音频播放 428 
24.3.2 applet的上下文对象 430 
24.4 小结 431 
第6篇 网络编程 
第25章 网络聊天室（udp协议+多线程） 434 
教学视频：6分钟 
25.1 网络聊天室原理 434 
25.1.1 项目结构框架分析 434 
25.1.2 项目功能业务分析 434 
25.2 网络聊天室的实现过程 436 
25.3 知识点扩展——网络编程和udp协议 438 
25.3.1 网络编程涉及的基本概念 439 
25.3.2 套接字（socket）机制 440 
25.3.3 udp协议类 441 
25.3.4 tcp协议类 445 
25.3.5 tcp协议客户端类 451 
25.4 小结 452 
第26章 ftp服务器客户端 （ftpclient+i/o处理） 453 
教学视频：8分钟 
26.1 ftp服务器客户端原理 453 
26.1.1 项目结构框架分析 453 
26.1.2 项目功能业务分析 454 
26.2 ftp服务器客户端的实现过程 455 
26.2.1 ftp服务器操作的工具类 456 
26.2.2 实现文件上传的类 459 
26.2.3 实现文件下载的类 459 
26.3 知识点扩展——ftpclient类的相关知识 460 
26.3.1 实现ftp服务器相关操作类 460 
26.3.2 相关jar包导入问题 462 
26.4 小结 464 
第27章 web服务器（http协议） 465 
教学视频：8分钟 
27.1 web服务器原理 465 
27.1.1 项目结构框架分析 465 
27.1.2 项目功能业务分析 465 
27.2 web服务器的实现过程 466 
27.2.1 实现与浏览器通信的类 466 
27.2.2 实现web服务器的类 469 
27.2.3 浏览器所请求的页面 470 
27.3 知识点扩展——http协议知识 470 
27.3.1 http协议原理 470 
27.3.2 实现http协议服务器的原理 471 
27.4 小结 471 
第28章 qq聊天工具 （swing+多线程+网络编程） 472 
教学视频：39分钟 
28.1 qq聊天工具原理 472 
28.1.1 项目结构框架分析 472 
28.1.2 项目功能业务分析 473 
28.2 qq项目——对象模型的类 476 
28.2.1 信息的类 476 
28.2.2 “用户”的类 478 
28.3 qq项目——登录功能 478 
28.3.1 qq服务器界面的设计 479 
28.3.2 qq服务器后台程序 480 
28.3.3 qq客户端登录界面的设计 481 
28.3.4 qq客户端后台程序 484 
28.3.5 成员列表窗口 485 
28.4 qq项目——聊天功能 487 
28.4.1 服务器端的信息转发 488 
28.4.2 客户端信息的发送和接收 490 
28.4.3 客户端信息转发类 492 
28.5 小结 494 
第7篇 项目案例实战 
第29章 人员信息管理项目 （接口设计模式+mysql数据库） 496 
教学视频：30分钟 
29.1 人员信息管理原理 496 
29.1.1 项目结构框架分析 496 
29.1.2 项目功能业务分析 497 
29.2 人员信息管理项目前期准备 502 
29.2.1 设计数据库 502 
29.2.2 数据库操作相关类 504 
29.3 人员信息管理项目——dao层 505 
29.3.1 实现数据连接操作（dao）的接口 506 
29.3.2 实现数据连接操作（dao）的实现类 507 
29.3.3 实现数据连接操作（dao）的代理类 510 
29.3.4 实现数据连接操作（dao）的工厂类 512 
29.4 人员信息管理项目——服务层和表示层 512 
29.4.1 人员信息管理项目的服务层 512 
29.4.2 人员信息管理项目的表示层 515 
29.4.3 工具类 516 
29.5 人员信息管理项目——代理类测试 517 
29.5.1 测试实现业务功能的各种方法 518 
29.5.2 人员信息管理入口类 520 
29.6 知识点扩展——设计模式的基础知识 521 
29.6.1 工厂设计模式 521 
29.6.2 代理设计模式 525 
29.7 小结 527 
第30章 中国象棋游戏（gui+游戏规则算法） 528 
教学视频：37分钟 
30.1 象棋游戏原理 528 
30.1.1 象棋游戏的基本规则 528 
30.1.2 项目结构框架分析 529 
30.1.3 项目功能业务分析 529 
30.2 象棋游戏项目——象棋游戏的主类 534 
30.2.1 实现象棋游戏的主界面 534 
30.2.2 实现象棋游戏中添加棋子的功能 537 
30.2.3 实现象棋游戏中棋子闪烁的功能 539 
30.2.4 处理单击棋子事件 539 
30.2.5 处理单击按钮事件 543 
30.3 象棋游戏项目——规则的内部类 546 
30.3.1 实现卒移动和吃的方法 546 
30.3.2 实现炮、车移动和吃的方法 550 
30.3.3 实现马移动和吃的方法 554 
30.3.4 实现象移动和吃的方法 561 
30.3.5 实现士移动和吃的方法 567 
30.3.6 实现将移动和吃的方法 572 
30.4 小结 578 
第31章 俄罗斯方块游戏网络版（swing+多线程+网络编程） 579 
教学视频：60分钟 
31.1 俄罗斯方块游戏项目原理 579 
31.1.1 基本原理 579 
31.1.2 项目结构框架分析 580 
31.1.3 项目功能业务分析 580 
31.2 俄罗斯方块游戏项目——初步设计涉及的对象 589 
31.2.1 正方形类 589 
31.2.2 俄罗斯方块类 590 
31.2.3 俄罗斯方块游戏项目的top10分数对象 599 
31.3 俄罗斯方块游戏项目——服务器端和客户端 602 
31.3.1 表示出俄罗斯方块游戏项目的服务器端 602 
31.3.2 表示出俄罗斯方块游戏项目的客户端 605 
31.4 俄罗斯方块游戏项目——游戏主界面 607 
31.4.1 俄罗斯方块游戏的主界面 608 
31.4.2 俄罗斯方块游戏的事件处理类 612 
31.4.3 俄罗斯方块游戏的状态工具栏 614 
31.5 俄罗斯方块游戏项目——其他界面的设计 616 
31.5.1 “关于”面板 616 
31.5.2 连接对方面板 618 
31.5.3 分数报告面板 620 
31.5.4 设置级别面板 624 
31.5.5 警告面板和对话框 625 
31.5.6 游戏结束面板和对话框 627 
31.6 小结 630 
第32章 图书管理系统项目 （gui+oracle数据库） 631 
教学视频：59分钟 
32.1 图书管理系统原理 631 
32.1.1 项目结构框架分析 631 
32.1.2 项目功能业务分析 631 
32.2 图书管理系统项目——图书的操作 640 
32.2.1 实现添加图书功能的类 640 
32.2.2 实现修改图书功能的类 644 
32.2.3 实现浏览图书信息的类 647 
32.2.4 实现删除图书信息的类 650 
32.3 图书管理系统项目——用户的操作 652 
32.3.1 实现添加用户功能的类 653 
32.3.2 实现删除用户功能的类 656 
32.3.3 实现修改用户功能的类 658 
32.3.4 实现用户登录功能的类 661 
32.3.5 实现用户列表功能的类 664 
32.4 图书管理系统项目——出借图书的操作 665 
32.4.1 出借图书操作的类 665 
32.4.2 借书列表方法 669 
32.4.3 修改出借图书信息方法 672 
32.5 图书管理系统项目——归还图书的操作 676 
32.5.1 归还图书类 676 
32.5.2 修改归还图书信息类 679 
32.6 图书管理系统项目——该项目的其他类 683 
32.6.1 主窗口类 683 
32.6.2 数据库操作 689 
32.7 小结 691
前言
ASP-net　　为什么要写这本书？ 
Java是Sun公司推出的一种程序设计语言，拥有面向对象、便利、跨平台、分布性、高性能、可移植等优点和特性，同时也是目前被程序员使用最广泛的编程语言之一。随着智能手机的发展及Android系统的普及，对Java人才的需求也更多。所以掌握Java语言成了程序员最基本的能力要求之一。 
目前市场上关于Java语言编程的书不少，入门讲解基础知识的居多。但是真正从实例出发，通过实践方式讲解知识点的书却很少。本书以线程→图形用户界面→文件的访问和操作→Applet程序→网络编程为主线，辅以开发软件遇到的典型模块代码，让读者在学习关于Java语言基础知识的同时，更能快速地适应软件职场。 
在学习一门语言时，希望读者能谨记：动手才是硬道理。切合这一主题，本书提供了非常实用的案例，供读者学习和研究。 
本书有何特色？ 
1．附带多媒体语音教学视频，提高学习效率 
为了便于读者理解本书内容，提高学习效率，作者专门为本书的每一章内容都录制了大量的多媒体语音教学视频。这些视频和本书涉及的源代码一起收录于配书光盘中。 
2．涵盖Java开发的各种热门技术及应用 
本书以现实职场中经典模块和完整项目系统为背景，以具体应用为目标，把Java语言的各种知识点分为线程、图形用户界面、文件访问和操作、Applet程序和网络编程5个方面，从这些方面入手，逐步深入地讲解所涉及的知识点。 
3．模块驱动，实用性强 
本书采用模块驱动的模式讲解，全书给出了25个Java开发的典型模块。本书的每章都是一个完整的模块，这些模块涵盖了Java语言的主要热门技术和应用。通过学习这些模块的开发，可以让读者深刻体会Java应用开发的特点。这些模块稍加修改，即可用于实际的开发中。 
4．项目案例典型，实战性强，有较高的应用价值 
本书最后一篇提供了4个项目实战案例，这些案例分别使用不同的技术组合实现，便于读者融会贯通地理解本书中所介绍的技术。这些案例稍加修改，便可用于实际的项目开发中。 
5．提供完善的技术支持和售后服务 
本书提供了专门的技术支持邮箱：。读者在阅读本书的过程中有任何疑问都可以通过该邮箱获得帮助。 
本书内容及知识体系 
本书共分为7篇，共32章，结合目前最新编程环境MyEclipse，全方位介绍了关于Java语言基础知识的各种典型模块。本书从Java语言的开发环境搭建和新特性讲起，然后进一步详细介绍Java语言开发的典型模块，最后结合笔者的实际项目经验详细讲解了4个完整项目。这些内容涵盖了Java开发中的5大经典应用。 
第1篇 Java开发必备基础（第1～3章） 
本篇主要介绍了关于Java语言的一些概念和语法。首先介绍了Java语言的一些基础知识，然后详细讲解了关于Java语言开发环境的搭建及如何创建、编译、运行Java程序；接着介绍了面向对象思想；最后演示了Java语言中的高级特性，如静态导入功能、可变参数函数、增强版for循环、基本数据的拆装箱操作、枚举语法、反射语法、标注语法、泛型语法、类加载器和动态代理。 
第2篇 线程开发（第4～8章） 
.　　本篇主要介绍了Java语言中最常见的5个线程机制的典型模块。主要包括：通过线程类Thread模拟“学生并发接水”场景；通过线程类Thread的join()方法模拟“做饭”场景；通过线程的安全知识实现“火车站售票系统”；通过线程的通信知识实现“生产者与消费者问题”；通过线程类Timer模拟Windows操作系统的关机工具。 
第3篇 图形用户界面开发（第9～17章） 
本篇主要介绍Java语言中最常见的9个图形用户界面的典型模块，包括通过图形用户界面中的各种AWT组件，实现各种典型图形用户界面；通过图形用户界面中的布局管理器对象，实现计算器功能；通过图形用户界面中的事件机制和Java语言中的线程机制，实现秒表功能；通过事件机制中的自定义事件，实现捉迷藏游戏；通过图形用户界面中的绘图机制和Java语言中的线程机制，实现鼠标绘直线的功能；通过图形用户界面中的事件机制，实现指针时钟项目；通过Swing的滑动杆JSlider组件，实现控制动画项目；通过Swing的各种文件对话框组件，模拟Windows系统中的记事本功能，以及综合使用图形用户界面中的各种组件和机制，实现拼图游戏项目。 
第4篇 文件操作和访问（第18～21章） 
本篇主要介绍了Java语言中最常见的4个文件操作及访问的典型模块。包括通过文件操作知识和图形用户界面中的各种组件，实现文件属性查看器项目；通过文件访问知识和图形用户界面中的各种组件，实现文件内容查看器项目；通过文件操作访问知识及图形用户界面中的各种组件，实现日记簿项目；通过字符串处理知识和图形用户界面中的各种组件，模拟Windows系统中的“查找和替换”功能。 
第5篇 Applet程序开发（第22～24章） 
本篇主要介绍了Java语言中最常见的3个Applet程序的典型模块。包括通过Applet程序中的显示图像和线程机制，实现图像轮显动画项目；通过Applet程序中的事件处理机制，实现鼠标和键盘中的按键监听项目；通过Applet程序中的音频操作及多线程机制，实现动画播放项目。 
第6篇 网络编程（第25～28章） 
本篇主要介绍Java语言中最常见的4个网络程序的典型模块，包括通过网络程序中的UDP协议和多线程机制，实现网络聊天室项目；通过网络程序中的FTPClient类和文件访问，实现FTP服务器客户端；通过网络程序中的HTTP协议，实现Web服务器；通过综合网络程序知识，实现QQ项目。 
第7篇 项目案例实战（第29～32章） 
本篇主要介绍4个项目案例的开发过程，主要包括人员信息管理项目、中国象棋游戏、俄罗斯方块网络游戏和图书管理系统项目。通过本篇内容的学习，可以大大提高读者的Java项目开发水平，解决实际项目开发中的种种难题。 
配书光盘内容介绍 
为了方便读者学习，本书附带1张DVD光盘。内容如下： 
* 本书所有实例的源代码； 
* 本书每章内容的多媒体语音教学视频； 
* 免费赠送的Java语言开发教学视频及相关电子书。 
适合阅读本书的读者 
* 有Java基础，需要提高实际开发水平的人员； 
* Java项目经验不足的行业新手； 
* 希望掌握Java典型模块开发的人员； 
* Java软件工程师； 
* Java项目开发人员； 
* 专业培训机构的学员； 
* 软件开发项目经理； 
* 需要一本案头必备查询手册的人员。 
阅读本书的建议 
* 没有Java语言基础的读者，建议从第1章顺次阅读并演练每一个实例。 
* 有一定Java语言基础的读者，可以根据实际情况有重点地选择阅读各个模块和项目案例。 
* 对于每一个模块和项目案例，先自己思考一下实现的思路，然后再阅读，这样学习效果更好。 
* 可以先对书中的模块和项目案例阅读一遍，然后结合光盘中提供的多媒体教学视频再理解一遍，这样理解起来就更加容易，也会更加深刻。 
本书作者及编委会成员 
本书第1～15章主要由东华理工大学的周华清编写，第16～28章主要由空军工程大学的李为民编写，第29～32章主要由空军工程大学的张昌龙编写。其他参与编写和资料整理的人员有王征、王石、姜海英、邵毅、张路平、李臻、武勇、徐宁、刘玉珊、麻雪、吝晓宁、范永龙、赵盟、傅靖、李佳、刘丹、肖冰、王行恒、冯浩楠、纪超、段桂东、黄宝生、张珍珍、石淑珍、陈超、牛晓辉、刘聪、任潇、张双、于志华、李秀劲、李胜美、蔡文仙、杜阳阳、吴兴亮、陈水望、黄任桢、梅婷婷、皇波、白雪蛟。在此一并表示感谢！ 
本书编委会成员有欧振旭、陈杰、陈冠军、顼宇峰、张帆、陈刚、程彩红、毛红娟、聂庆亮、王志娟、武文娟、颜盟盟、姚志娟、尹继平、张昆、张薛。 
编著者