第1部分 Java基础 3
第1章 Java概述 3
1.1 Java简介 4
1.1.1 Java发展历史 4
1.1.2 Java的几个版本 5
1.1.3 Java应用领域 6
1.1.4 Java项目成功案例 7
1.1.5 怎样学好Java 7
1.2 环境搭建 8
1.2.1 JDK下载 8
1.2.2 JDK安装 11
1.2.3 配置环境变量 12
1.3 编写第一个Java程序 15
1.4 Java学习与帮助资源——Java API文档 17
1.5 本章小结 17
第2章 装备Java IDE开发工具 19
2.1 Eclipse简介 20
2.2 Eclipse下载与安装 20
2.2.1 Eclipse分类 20
2.2.2 下载Eclipse 21
2.2.3 安装中文语言包 23
2.2.4 启动Eclipse 24
2.3 安装界面设计器 25
2.3.1 下载SWT-Designer 25
2.3.2 安装SWT-Designer 26
2.3.3 激活SWT-Designer 27
2.4 熟悉Eclipse 30
2.4.1 Eclipse工作台 30
2.4.2 透视图与视图 30
2.4.3 包资源管理器视图 31
2.4.4 编辑器视图 31
2.4.5 控制台视图 32
2.4.6 大纲视图 32
2.4.7 问题视图 32
2.4.8 透视图工具栏 32
2.4.9 视图工具栏 33
2.4.10 快速视图工具栏 33
2.5 如何开发Java程序 33
2.5.1 新建Java项目 33
2.5.2 新建Java类 34
2.5.3 编写Java代码 35
2.5.4 运行Java程序 37
2.6 如何开发桌面应用程序 37
2.6.1 新建Swing GUI窗体 38
2.6.2 向窗体添加GUI组件 39
2.6.3 实现组件的事件监听器 41
2.6.4 运行GUI程序 41
2.7 为项目添加类库的常用方法 42
2.7.1 添加JAR 42
2.7.2 创建用户库 43
2.7.3 添加库 44
2.7.4 添加类文件夹 45
2.7.5 添加依赖项目 45
2.8 如何进行程序调试 46
2.8.1 设置断点 46
2.8.2 以调试方式运行Java程序 47
2.8.3 程序调试 47
2.9 本章小结 47
2.10 实战练习 48
第3章 Java语言基础 49
3.1 Java主类结构 50
3.1.1 定义类包 50
3.1.2 定义类 50
3.1.3 导入API类库 50
3.1.4 定义变量 51
3.1.5 定义主方法 51
3.1.6 运行主类 51
3.2 代码注释 51
3.2.1 单行注释 51
3.2.2 多行注释 52
3.2.3 JavaDoc文档注释 52
3.3 变量与常量 53
3.3.1 Java保留字 53
3.3.2 定义变量 54
3.3.3 定义常量 54
3.3.4 常量与变量的有效范围 55
3.4 数据类型 56
3.4.1 计算机常用数制 56
3.4.2 整数类型 58
3.4.3 浮点类型 59
3.4.4 字符类型 60
3.4.5 布尔类型 61
3.5 数据类型转换 62
3.5.1 自动类型转换 62
3.5.2 强制类型转换 63
3.6 运算符 65
3.6.1 赋值运算符 65
3.6.2 算术运算符 66
3.6.3 自增和自减运算符 67
3.6.4 比较运算符 68
3.6.5 逻辑运算符 69
3.6.6 位运算符 70
3.6.7 三元运算符 72
3.6.8 运算符优先级 72
3.7 编码规范 73
3.8 实战 74
3.8.1 类型转换实战 74
3.8.2 运算符的应用 75
3.8.3 求最大值 76
3.8.4 输出长方形的面积 76
3.8.5 输出圆形的面积 77
3.8.6 输出字节bit位的值 77
3.9 本章小结 78
3.10 实战练习 79
第4章 流程控制语句 81
4.1 复合语句 82
4.2 条件语句 82
4.2.1 if条件判断语句 83
4.2.2 if语句的嵌套 87
4.2.3 switch分支语句 88
4.2.4 if语句和switch语句的区别 91
4.3 循环语句 92
4.3.1 for循环 92
4.3.2 while循环 93
4.3.3 do…while循环 95
4.3.4 print与println方法 96
4.3.5 循环嵌套 97
4.4 循环的跳转 98
4.4.1 continue跳转语句 99
4.4.2 break跳转语句 101
4.5 实战 102
4.5.1 计算阶乘 102
4.5.2 计算素数 103
4.6 本章小结 104
4.7 实战练习 104
第5章 数组 107
5.1 一维数组的创建与应用 108
5.1.1 创建一维数组 108
5.1.2 初始化一维数组 109
5.1.3 遍历一维数组 110
5.2 二维数组的创建与应用 110
5.2.1 创建二维数组 110
5.2.2 初始化二维数组 112
5.2.3 遍历二维数组 112
5.3 多维数组的创建 113
5.3.1 创建多维数组 113
5.3.2 初始化多维数组 113
5.3.3 遍历三维数组 114
5.4 foreach循环遍历数组 115
5.5 实战 117
5.5.1 填充替换数组元素 117
5.5.2 对数组进行排序 118
5.5.3 复制数组 119
5.5.4 使用冒泡排序 121
5.5.5 使用直接选择排序法 122
5.6 本章小结 124
5.7 实战练习 124
第2部分 面向对象编程 127
第6章 面向对象 127
6.1 类的定义 128
6.2 包 128
6.2.1 类包简介 128
6.2.2 定义类的包 129
6.2.3 类包的导入 130
6.2.4 静态导入 131
6.3 成员变量与成员方法 131
6.3.1 成员变量 131
6.3.2 成员方法 132
6.3.3 方法的返回值 132
6.4 对象的创建与使用 134
6.4.1 创建类的对象 134
6.4.2 访问对象的属性 135
6.4.3 执行对象的行为 135
6.4.4 对象的销毁 137
6.5 类成员与类方法 137
6.5.1 类变量 137
6.5.2 类方法 138
6.6 方法的重载 140
6.7 this关键字 143
6.8 构造方法与静态代码块 144
6.8.1 构造方法 144
6.8.2 静态代码块 147
6.9 实战 148
6.10 本章小结 150
6.11 实战练习 150
第7章 字符串处理 151
7.1 如何使用字符串 152
7.1.1 创建字符串 152
7.1.2 连接字符串 152
7.2 判断字符串是否相等 154
7.3 字符串比较 155
7.4 String类的常用方法 156
7.4.1 length方法 156
7.4.2 indexOf方法 157
7.4.3 lastIndexOf方法 157
7.4.4 charAt方法 158
7.4.5 trim方法 159
7.4.6 substring方法 159
7.4.7 split方法 161
7.4.8 replease方法 162
7.4.9 toUpperCase与toLowerCase方法 163
7.4.10 startsWith与endsWith方法 164
7.5 实战 165
7.5.1 查找字符串 165
7.5.2 反转字符串 166
7.6 本章小结 167
7.7 实战练习 167
第8章 类的继承与多态特性 169
8.1 类的继承 170
8.2 方法的重写与super关键字 172
8.3 修饰符 175
8.3.1 public修饰符 175
8.3.2 private修饰符 175
8.3.3 protected修饰符 176
8.3.4 默认权限修饰符 177
8.4 封装 178
8.4.1 把属性隐藏 178
8.4.2 定义设置器 179
8.4.3 定义访问器 179
8.4.4 使用Eclipse完成封装 180
8.5 Object类 182
8.5.1 equals方法 183
8.5.2 toString方法 184
8.6 instanceOf判断类型 184
8.7 多态 187
8.7.1 多态数组 187
8.7.2 参数多态 190
8.8 抽象类与接口 194
8.8.1 抽象类 194
8.8.2 接口 195
8.9 实战 198
8.9.1 实现单例模式 198
8.9.2 重写equals()方法 200
8.10 本章小结 202
8.11 实战练习 202
第9章 其他类特性与异常处理 203
9.1 final特性 204
9.1.1 final变量 204
9.1.2 final方法 205
9.1.3 final类 205
9.2 内部类 206
9.2.1 成员内部类 206
9.2.2 获取外部类的引用 208
9.2.3 局部内部类 209
9.2.4 匿名内部类 209
9.2.5 静态内部类 210
9.3 异常处理 211
9.3.1 什么是异常 211
9.3.2 捕获异常 211
9.4 抛出异常 213
9.4.1 向上抛出异常 213
9.4.2 使用throws关键字抛出异常 214
9.5 运行时异常 215
9.6 异常的使用原则 216
9.7 实战 216
9.7.1 计算矩形周长 216
9.7.2 自定义异常 217
9.8 本章小结 219
9.9 实战练习 219
第3部分 编程技术 223
第10章 Swing程序设计基础 223
10.1 JFrame窗体 224
10.2 常用布局管理器 226
10.2.1 绝对布局 227
10.2.2 流布局管理器(FlowLayout) 228
10.2.3 边界布局管理器(BorderLayout) 229
10.2.4 网格布局管理器(GridLayout) 230
10.3 常用面板 232
10.3.1 JPanel面板 232
10.3.2 JScrollPane面板 233
10.4 标签组件与图标 234
10.4.1 标签的使用 234
10.4.2 图标的使用 234
10.5 按钮组件 236
10.5.1 普通按钮组件(JButton) 236
10.5.2 单选按钮组件(JRadioButton) 237
10.5.3 复选框组件(JCheckBox) 238
10.6 文本组件 239
10.6.1 文本框组件(JTextField) 240
10.6.2 密码框组件(JPasswordField) 241
10.6.3 文本域组件(JTextArea) 242
10.7 列表组件 243
10.7.1 下拉列表框组件(JComboBox) 244
10.7.2 列表框组件(JList) 246
10.8 进度条 248
10.9 实战 249
10.10 本章小结 251
10.11 实战练习 251
第11章 使用线程实现多任务 253
11.1 线程基础 254
11.1.1 多线程简介 254
11.1.2 线程的生命周期 254
11.1.3 认识main线程 256
11.1.4 继承Thread类建立多线程 256
11.1.5 实现Runnable接口创建多线程 258
11.2 线程控制 260
11.2.1 线程的休眠 260
11.2.2 线程的停止 262
11.2.3 线程的调度 265
11.2.4 设置线程的优先级 269
11.3 线程同步 271
11.3.1 线程安全 271
11.3.2 线程同步机制 273
11.4 在Swing中使用线程 276
11.4.1 在Swing线程中执行业务处理 276
11.4.2 在其他线程中执行业务处理 279
11.5 实战 281
11.5.1 同时移动多个组件 281
11.5.2 实现圆周运动 283
11.6 本章小结(工作记录) 285
11.7 实战练习 286
第12章 GUI事件处理 287
12.1 什么是GUI事件 288
12.1.1 为程序添加交互能力 288
12.1.2 GUI事件类 289
12.1.3 事件监听器 291
12.1.4 适配器 292
12.2 窗体事件 293
12.3 掌握鼠标操作 295
12.3.1 鼠标事件监听器 295
12.3.2 鼠标事件处理 296
12.4 掌握键盘控制 298
12.4.1 键盘事件监听器 298
12.4.2 键盘事件处理 299
12.5 实战 303
12.5.1 简易配对游戏 303
12.5.2 用方向键移动背景 306
12.5.3 简易打地鼠游戏 308
12.6 本章小结 310
12.7 实战练习 311
第13章 编程常用类 313
13.1 日期时间类 314
13.1.1 创建Date类的对象 314
13.1.2 比较Date对象 314
13.1.3 更改Date对象 316
13.1.4 日期的格式化输出 316
13.2 数学运算 319
13.2.1 Math类 320
13.2.2 Math类的数学方法 320
13.3 随机数 324
13.3.1 通过Math类生成随机数 324
13.3.2 使用Random类生成随机数 326
13.4 数字格式化类 327
13.4.1 DecimalFormat类 327
13.4.2 数字的格式化输出 328
13.5 实战 330
13.5.1 随机抽奖 330
13.5.2 格式化输出数字 334
13.5.3 数字电子表 337
13.6 本章小结 339
13.7 实战练习 339
第14章 使用集合类保存对象 341
14.1 集合类概述 342
14.1.1 什么是集合类 342
14.1.2 Java集合类的继承关系 342
14.2 List集合 342
14.2.1 List接口 343
14.2.2 ArrayList类 345
14.3 Set集合 346
14.3.1 Set接口 346
14.3.2 HashSet类 347
14.4 Map集合 348
14.4.1 Map接口 349
14.4.2 HashMap类 350
14.4.3 TreeMap类 352
14.5 实战 353
14.5.1 使用集合创建单选按钮组 354
14.5.2 使用集合类保存数据 355
14.6 本章小结 356
14.7 实战练习 356
第15章 数据库编程 357
15.1 JDBC技术 358
15.1.1 数据库概述 358
15.1.2 JDBC-ODBC技术介绍 359
15.1.3 JDBC技术 360
15.2 JDBC中常用的类和接口 360
15.2.1 DriverManager类 360
15.2.2 Connection接口 360
15.2.3 Statement接口 361
15.2.4 PreparedStatement接口 362
15.2.5 ResultSet接口 362
15.3 数据库连接 363
15.3.1 加载数据库驱动 364
15.3.2 创建数据库连接 364
15.3.3 向数据库发送SQL语句 367
15.3.4 获取查询结果集 368
15.3.5 关闭连接 369
15.4 数据库操作 369
15.4.1 添加数据 369
15.4.2 删除数据 371
15.4.3 修改数据 372
15.4.4 查询数据 373
15.4.5 使用预编译语句 374
15.4.6 模糊查询 376
15.5 实战 377
15.5.1 英汉小词典 377
15.5.2 系统登录 381
15.5.3 库存管理 384
15.6 本章小结 388
15.7 实战练习 388
第16章 数据的输入/输出处理 389
16.1 文件 390
16.1.1 File类 390
16.1.2 常用方法 390
16.2 字节输入/输出流 392
16.2.1 InputStream类 392
16.2.2 OutputStream类 393
16.2.3 FileInputStream类 394
16.2.4 FileOutputStream类 395
16.2.5 BufferedInputStream类 396
16.2.6 BufferedOutputStream类 397
16.2.7 DataInputStream类 398
16.2.8 DataOutputStream类 399
16.3 字符输入/输出流 400
16.3.1 Reader类 401
16.3.2 Writer类 401
16.3.3 FileReader类 402
16.3.4 FileWriter类 403
16.3.5 Scanner类 404
16.3.6 PrintWriter类 405
16.4 StringBuilder类 406
16.4.1 StringBuilder与StringBuffer 407
16.4.2 常用方法 408
16.5 实战 409
16.5.1 复制文件 409
16.5.2 复制文件夹 410
16.5.3 删除文件 411
16.5.4 重命名文件 412
16.5.5 计数器 412
16.6 本章小结 414
16.7 实战练习 414
第17章 网络程序设计 415
17.1 网络基础 416
17.1.1 TCP/IP协议 416
17.1.2 TCP与UDP协议 416
17.1.3 端口和套接字 417
17.2 TCP通信 418
17.2.1 InetAddress类 418
17.2.2 ServerSocket类 420
17.2.3 Socket类 422
17.3 UDP通信 425
17.3.1 DatagramSocket类 425
17.3.2 DatagramPacket类 426
17.4 实战 428
17.4.1 TCP单向通信 428
17.4.2 UDP实现广播数据报 430
17.4.3 迷你聊天屋 433
17.5 本章小结 437
17.6 实战练习 437
第4部分 高级编程 441
第18章 Swing高级组件 441
18.1 文件选择对话框 442
18.1.1 创建文件选择对话框 442
18.1.2 添加文件过滤器 444
18.2 工具栏 446
18.2.1 创建工具栏 447
18.2.2 添加工具按钮 447
18.3 菜单栏与弹出菜单 449
18.3.1 创建菜单栏 449
18.3.2 添加菜单和菜单项 449
18.3.3 创建弹出菜单 453
18.4 分割面板 455
18.4.1 创建分割面板 455
18.4.2 使用分割面板 456
18.5 选项卡面板 458
18.5.1 创建选项卡面板 458
18.5.2 使用选项卡面板 459
18.6 桌面面板和内部窗体 461
18.6.1 创建桌面面板 461
18.6.2 创建内部窗体 462
18.7 使用系统托盘 465
18.7.1 获取系统托盘 465
18.7.2 为系统托盘添加图标 466
18.7.3 添加弹出菜单 467
18.8 实战 469
18.8.1 打开文本文件 469
18.8.2 浏览图片 472
18.9 本章小结 475
18.10 实战练习 476
第19章 使用表格组件 477
19.1 表格的创建 478
19.1.1 创建表格 478
19.1.2 定制表格 481
19.2 维护表格模型 485
19.2.1 创建表格模型 485
19.2.2 设置表格模型 486
19.2.3 维护模型对象 488
19.3 创建行标题栏 492
19.4 模型的事件监听与处理 496
19.5 实战 502
19.6 本章小结 505
19.7 实战练习 505
第20章 使用树组件 507
20.1 创建树组件 508
20.2 维护树模型 511
20.2.1 创建模型对象 511
20.2.2 设置树组件的模型 512
20.2.3 维护树的模型 516
20.3 定制树的样式 520
20.4 树的事件处理 531
20.4.1 选中节点事件 531
20.4.2 节点展开与收缩事件 535
20.5 实战 538
20.6 本章小结 543
20.7 实战练习 543
第21章 Java绘图技术 545
21.1 Grraphics简介 546
21.1.1 Graphics 546
21.1.2 Graphics2D 546
21.1.3 获得组件的Graphics2D对象 546
21.2 设置颜色与笔画 548
21.2.1 设置颜色 548
21.2.2 笔画属性 549
21.3 如何绘制文本 550
21.3.1 设置字体 550
21.3.2 绘制文本 551
21.4 在组件上绘图 553
21.5 绘制图形 555
21.6 绘制图像 559
21.7 实战 560
21.7.1 图像灵活缩放 560
21.7.2 把图像翻转一下 562
21.7.3 给图像换个角度 565
21.7.4 使图像倾斜 566
21.8 本章小结 567
21.9 实战练习 568
第5部分 项目实战 571
第22章 进销存管理系统 571
22.1 项目描述 572
22.2 系统分析 572
22.2.1 需求分析 572
22.2.2 可行性分析 573
22.3 系统设计 574
22.3.1 系统目标 574
22.3.2 系统功能结构 574
22.3.3 系统业务流程图 574
22.3.4 系统编码规范 576
22.4 系统运行环境 578
22.5 数据库与数据表设计 578
22.5.1 数据库分析 578
22.5.2 创建数据库 579
22.5.3 创建数据表 580
22.6 创建项目 584
22.7 系统文件夹组织结构 585
22.8 公共类设计 585
22.8.1 SaveUserInfo公共类 585
22.8.2 OnlyNumber公共类 586
22.8.3 DaoConn公共类 586
22.9 系统登录模块设计 587
22.9.1 设计系统登录窗体 587
22.9.2 登录按钮的事件处理 588
22.9.3 密码文本框的回车事件 589
22.10 主窗体模块设计 589
22.10.1 创建系统主窗体 590
22.10.2 设计菜单栏 590
22.10.3 设计工具栏 590
22.10.4 设计导航按钮 590
22.10.5 设计状态栏 591
22.10.6 设计显示背景图片的面板 591
22.11 供应商基本信息管理模块 593
22.11.1 设计供应商基本信息管理窗体 594
22.11.2 添加供应商信息 595
22.11.3 修改供应商信息 596
22.11.4 删除供应商信息 600
22.12 订购商品信息管理模块设计 601
22.12.1 设计订购商品信息管理窗体 602
22.12.2 订购商品信息 603
22.13 采购入库管理模块设计 605
22.13.1 设计采购入库管理窗体 606
22.13.2 采购入库管理 606
22.14 入库信息查询模块设计 609
22.14.1 设计入库信息查询窗体 610
22.14.2 入库信息查询 610
22.15 入库退货管理模块设计 613
22.15.1 设计入库退货管理窗体 614
22.15.2 设计录入商品入库退货信息窗体 615
22.15.3 设计保存输入信息的类 615
22.16 库存盘点窗体模块设计 620
22.16.1 设计库存盘点窗体 620
22.16.2 库存盘点 621
22.17 库存调拨模块设计 622
22.17.1 设计库存调拨窗体 622
22.17.2 添加商品调拨信息 623
22.17.3 查询商品调拨信息 625
22.18 销售订单管理模块设计 627
22.18.1 设计销售订单管理窗体 627
22.18.2 销售订单管理 628
22.19 销售出库管理模块设计 631
22.19.1 设计销售出库管理窗体 631
22.19.2 销售出库管理 632
22.20 销售退货管理模块设计 638
22.20.1 设计销售退货管理窗体 639
22.20.2 设计录入商品销售退货信息窗体 640
22.20.3 设计保存输入信息的类 640
22.21 添加用户信息模块设计 645
22.21.1 设计添加用户信息窗体 645
22.21.2 添加用户信息 646
22.22 用户设置窗体模块设计 647
22.22.1 设计用户设置窗体 648
22.22.2 修改用户密码 648
22.22.3 设置用户权限 649
22.22.4 删除用户信息 651
22.23 经手人管理模块设计 652
22.23.1 设计经手人管理窗体 652
22.23.2 添加经手人 653
22.23.3 设置经手人 654
22.24 运行项目 655
22.25 系统打包发行 657
22.26 开发常见问题与解决 660
22.26.1 不显示系统登录窗体 660
22.26.2 运行程序时找不到数据库驱动 661
22.26.3 运行程序时用户名或密码不正确 661
22.26.4 运行程序时找不到数据库 662
22.26.5 打包的JAR文件无法运行 662
22.26.6 运行打包的JAR文件不出现闪屏界面 663
22.26.7 打包的JAR文件找不到数据库驱动 663
22.26.8 数据库只读 663
22.27 本章小结 664
第23章 企业通信管理系统 665
23.1 开发背景 666
23.2 系统设计 666
23.2.1 系统目标 666
23.2.2 系统功能结构 666
23.2.3 数据库设计 666
23.2.4 文件夹组织结构 667
23.3 主窗体设计 668
23.4 公共模块设计 668
23.5 系统托盘模块设计 669
23.6 系统操作模块设计 669
23.7 用户管理模块设计 670
23.8 通信模块设计 671
23.9 本章小结 672
第24章 图书馆管理系统 673
24.1 系统分析 674
24.2 系统设计 674
24.2.1 系统目标 674
24.2.2 系统功能结构 674
24.2.3 系统业务流程图 675
24.3 系统运行环境 675
24.4 数据库与数据表设计 676
24.4.1 数据库分析 676
24.4.2 数据表设计 676
24.5 创建项目 678
24.6 公共类设计 679
24.7 登录模块设计 679
24.8 系统主窗体设计 679
24.9 新书订购模块设计 680
24.10 图书验收模块设计 681
24.11 图书信息添加模块设计 681
24.12 图书信息修改模块设计 682
24.13 图书借阅模块设计 682
24.14 图书归还模块设计 683
24.15 图书查询模块设计 683
24.16 本章小结 684
第25章 酒店管理系统 685
25.1 系统分析 686
25.2 系统设计 686
25.2.1 系统目标 686
25.2.2 系统功能结构 686
25.2.3 系统业务流程图 687
25.3 系统运行环境 687
25.4 数据库与数据表设计 688
25.4.1 数据库分析 688
25.4.2 数据表设计 688
25.5 创建项目 690
25.6 公共类设计 691
25.7 系统登录模块设计 691
25.8 系统主窗体设计 692
25.9 后台管理工作区设计 692
25.10 开台签单工作区设计 693
25.11 自动结账工作区设计 694
25.12 结账报表工作区设计 695
25.13 用户管理工作区设计 696
25.14 本章小结 696
第26章 企业人事管理系统 697
26.1 系统分析 698
26.2 系统设计 698
26.2.1 系统目标 698
26.2.2 系统功能结构 698
26.2.3 系统业务流程图 699
26.3 系统运行环境 699
26.4 数据库与数据表设计 700
26.4.1 数据库分析 700
26.4.2 数据表设计 700
26.5 创建项目 702
26.6 公共模块设计 703
26.7 系统主窗体设计 703
26.7.1 导航栏的设计 703
26.7.2 工具栏的设计 703
26.8 人事管理模块设计 704
26.9 待遇管理模块设计 705
26.10 系统维护模块设计 706
26.11 本章小结 707
附录 Java程序编码规范 709