第1章 Java GUI设计概述 1
1.1 GUI简介 1
1.1.1 GUI概念 1
1.1.2 计算机GUI简史 1
1.1.3 GUI的基本组成 5
1.2 Java GUI概况 9
1.2.1 AWT 9
1.2.2 Swing 10
1.2.3 SWT/JFace 10
1.3 Java GUI程序的实现原理 12
1.3.1 程序的图形用户界面显示原理 12
1.3.2 Java GUI程序的构成 12
1.3.3 Java GUI组件的布局 14
1.3.4 用户交互与事件循环 14
1.4 可视化程序设计 15
1.4.1 可视化程序设计的概念 15
1.4.2 可视化程序设计发展简况 16
1.5 习题 18
第2章 Java SWT GUI程序可视化开发环境的配置与使用 19
2.1 Eclipse简介 19
2.1.1 Eclipse是什么 19
2.1.2 Eclipse版本概况 19
2.1.3 Eclipse平台体系结构 21
2.2 Eclipse Java可视化开发环境的安装配置 22
2.2.1 JDK的安装配置 22
2.2.2 Eclipse的安装配置 23
2.2.3 WindowBuilder的安装配置 24
2.3 Eclipse开发界面及操作 25
2.3.1 编辑器及其操作 25
2.3.2 视图和透视图及其操作 26
2.3.3 项目与工作空间 27
2.3.4 Eclipse首选项 27
2.4 可视化开发Java SWT GUI程序的基本操作 28
2.4.1 WindowBuilder SWT/JFace项目的创建及其构成 28
2.4.2 创建SWT Application Window 29
2.4.3 设计视图及界面设计 30
2.4.4 组件面板 33
2.4.5 结构视图 34
2.4.6 设计示例 36
2.4.7 代码(Source)视图及Java代码编辑 38
2.4.8 运行Java项目 43
2.4.9 调试项目 43
2.5 Java GUI项目的打包与发布 44
2.5.1 导出可运行的JAR文件 44
2.5.2 发布打包的Java项目 45
2.6 习题 45
第3章 程序窗体及基本控件的使用 46
3.1 程序窗体的设计 46
3.1.1 窗体的创建 46
3.1.2 窗体的属性 47
3.1.3 主要操作 51
3.2 标签设计 52
3.2.1 文字与图像 52
3.2.2 字体、前景色、背景色 52
3.2.3 对齐方式与换行 53
3.2.4 分隔符、朝向和阴影 53
3.2.5 其他属性 53
3.3 按钮设计 55
3.4 文本框设计 57
3.4.1 文本、显示字符和密码 57
3.4.2 字体、背景色和前景色 58
3.4.3 可编辑、只读和生效 58
3.4.4 对齐方式和字数限制 58
3.4.5 多行文本框及其相关属性 58
3.4.6 常用方法简介 59
3.5 组合框设计 60
3.5.1 items属性与列表项的添加 60
3.5.2 text 60
3.5.3 可视列表项数 61
3.5.4 只读与文本限制 61
3.5.5 select 61
3.5.6 字体、前景颜色和背景颜色 61
3.5.7 常用方法简介 62
3.6 Java SWT GUI程序的基本结构 63
3.6.1 Eclipse WindowBuilder生成的Java SWT GUI程序清单分析 63
3.6.2 在其他方法中创建UI内容组件的代码组织 67
3.6.3 创建SWT Shell 68
3.6.4 组件该设为字段变量还是局部变量 71
3.7 习题 72
第4章 GUI交互功能设计——事件处理 73
4.1 事件处理的概念及委托事件处理模型 73
4.1.1 事件 73
4.1.2 事件处理模型 74
4.1.3 SWT的事件处理机制 75
4.2 事件处理的设计 77
4.2.1 事件监听器的两种实现方式 77
4.2.2 事件监听器类的3种编写方法 81
4.3 常用事件监听器 88
4.3.1 鼠标事件 89
4.3.2 键盘事件 93
4.3.3 焦点事件 95
4.3.4 组件控制事件 96
4.3.5 选择事件 97
4.3.6 组件专用事件监听器 98
4.3.7 通用事件监听器 98
4.3.8 事件及其监听器小结 99
4.4 习题 100
第5章 布局设计 101
5.1 布局管理器概述 101
5.1.1 布局术语 101
5.1.2 布局方法 101
5.1.3 布局数据类 103
5.2 绝对布局 103
5.3 填充式布局 105
5.4 行列式布局 107
5.4.1 RowLayout的属性 108
5.4.2 布局数据LayoutData 110
5.5 网格式布局 111
5.5.1 GridLayout的属性 112
5.5.2 布局数据LayoutData 113
5.5.3 设计实例 118
5.6 表格式布局 120
5.6.1 FormLayout的属性 121
5.6.2 设置参照物与锚点 121
5.6.3 设置偏移量 122
5.6.4 相对于父容器的快速约束设置 122
5.6.5 布局数据LayoutData的属性 125
5.6.6 表格式布局的设计实例 126
5.7 堆栈式布局 130
5.7.1 StaekIayout的属性 130
5.7.2 添加组件及控制组件的显示 131
5.7.3 应用示例 131
5.8 流式布局 133
5.9 边框式布局 134
5.10 盒式布局 135
5.11 习题 135
第6章 容器的使用 136
6.1 面板容器 136
6.1.1 Composite的属性 136
6.1.2 应用举例 137
6.2 分组框 139
6.2.1 Group的属性 139
6.2.2 应用举例 140
6.3 带滚动条的面板 141
6.3.1 带滚动条面板的属性 141
6.3.2 带滚动条面板的使用方法 142
6.4 选项卡 143
6.4.1 选项卡的组件结构 144
6.4.2 TabFolder属性 144
6.4.3 带有选项卡的GUI设计方法 145
6.4.4 设计实例 146
6.5 分割窗 150
6.5.1 分割窗的属性 151
6.5.2 在分割窗中创建组件 151
6.5.3 分割窗的控制 151
6.5.4 List控件的初步使用 152
6.5.5 应用举例 152
6.6 ViewForm容器 155
6.7 CBanner容器 156
6.8 高级选项卡容器 157
6.8.1 CTabFolder的属性 157
6.8.2 CTabItem 159
6.9 习题 160
第7章 工具栏、菜单及其他控件的设计 161
7.1 工具栏设计 161
7.1.1 工具栏和工具项的设计方法 161
7.1.2 工具栏和工具项的属性设置 162
7.1.3 工具按钮事件 163
7.1.4 应用实例 163
7.2 动态工具栏 164
7.2.1 SWT动态工具栏的结构 164
7.2.2 动态工具栏的设计方法 165
7.2.3 动态工具栏的属性 165
7.3 菜单设计 167
7.3.1 菜单栏 167
7.3.2 菜单与菜单项 168
7.3.3 设计步骤 169
7.3.4 处理菜单事件 171
7.3.5 DropDown ToolItem的设计 175
7.4 伸缩面板与链接控件 178
7.4.1 伸缩面板 179
7.4.2 伸缩条项 179
7.4.3 伸缩面板界面的设计 180
7.4.4 链接控件 180
7.5 进度条和数值组件的设计 182
7.5.1 进度条 182
7.5.2 刻度条 184
7.5.3 滑动条 184
7.5.4 微调器 185
7.5.5 日期时间控件 185
7.6 浏览器 186
7.6.1 主要方法 186
7.6.2 应用实例 187
7.7 系统托盘 188
7.7.1 SWT系统托盘的构成及获取 189
7.7.2 托盘项 189
7.7.3 应用实例 190
7.8 习题 192
第8章 SWT复杂控件的使用 193
8.1 样式文本 193
8.1.1 属性 193
8.1.2 指定范围 195
8.1.3 指定样式集 196
8.1.4 应用实例 197
8.2 SWT表格的设计 200
8.2.1 创建与设置表格 200
8.2.2 创建与设置表格列 201
8.2.3 创建与设置表格行 202
8.2.4 创建与设置表格游标 203
8.2.5 创建表格面板 203
8.2.6 应用示例 203
8.3 SWT树的设计 205
8.3.1 创建与设置树 205
8.3.2 创建与设置树节点 206
8.3.3 表格型树与表格树列组件 206
8.3.4 创建树面板 207
8.3.5 应用示例 207
8.4 画布与图像的使用 209
8.4.1 Image类 210
8.4.2 ImageData类 211
8.4.3 画布 212
8.4.4 图形上下文 212
8.4.5 图像描述符 218
8.4.6 图像注册表 218
8.4.7 应用实例 219
8.5 剪贴板的使用及SWT的拖放操作 220
8.5.1 Transfer类 220
8.5.2 使用剪贴板 221
8.5.3 拖放操作概述 226
8.5.4 拖放源 227
8.5.5 拖放目标 229
8.5.6 应用举例 231
8.6 习题 232
第9章 JFace GUI程序设计 234
9.1 设计JFace GUI程序 234
9.1.1 JFace概述 234
9.1.2 设计JFace应用程序窗口 235
9.1.3 JFace GUI程序的结构 239
9.2 JFace的Action与菜单及工具栏的设计 242
9.2.1 JFaceAction的概念及设计 242
9.2.2 ContributionItem的管理及菜单与工具栏的设计 248
9.2.3 应用举例 251
9.3 状态栏 253
9.3.1 JFace状态栏的构成 253
9.3.2 显示状态栏中的进度指示器 254
9.3.3 在状态栏显示定制信息 255
9.3.4 应用示例 256
9.4 创建对话框窗体 259
9.4.1 创建SWT Dialog窗体 259
9.4.2 创建JFace Dialog窗体 263
9.4.3 创建TitleAreaDialog窗体 265
9.5 习题 266
第10章 对话框的使用 267
10.1 消息对话框 267
10.2 输入对话框 269
10.3 目录对话框 271
10.4 文件对话框 271
10.5 颜色与颜色对话框 275
10.5.1 颜色 275
10.5.2 颜色对话框 276
10.6 字体与字体对话框 277
10.6.1 字体 277
10.6.2 字体对话框 278
10.7 打印对话框及打印支持 279
10.7.1 打印数据类 279
10.7.2 打印类 280
10.7.3 打印对话框 281
10.7.4 应用示例 281
10.8 设计向导对话框 287
10.8.1 创建和设计向导页 287
10.8.2 创建向导 288
10.8.3 向导对话框的使用 289
10.8.4 向导设计与应用示例 290
10.9 习题 298
第11章 表格设计与数据处理 300
11.1 获取与封装数据库中的数据 300
11.1.1 加载数据库驱动程序 300
11.1.2 连接数据库 301
11.1.3 执行SQL语句 304
11.1.4 访问结果集中的数据 306
11.1.5 释放资源 308
11.1.6 应用实例 308
11.1.7 封装数据 311
11.2 创建带有查看器的表格 312
11.2.1 创建表格查看器及表格 312
11.2.2 创建表格列查看器 316
11.2.3 复选框表格 318
11.3 表格的编辑 319
11.3.1 表格单元编辑器 319
11.3.2 设置表格及表列的编辑器 320
11.4 表格排序和筛选 323
11.4.1 表格查看器实现排序 323
11.4.2 表格列查看器实现排序 326
11.4.3 过滤器与筛选 327
11.5 表格的其他常用操作 330
11.5.1 表格行选择事件处理 330
11.5.2 增加和删除表行 331
11.5.3 在表行之间移动选择器 332
11.5.4 设置单元格颜色 335
11.6 习题 335
第12章 树形UI的设计 336
12.1 树形数据的设计 336
12.1.1 学生成绩管理系统的数据库设计 336
12.1.2 数据封装类 338
12.1.3 树节点类的设计 343
12.1.4 树形结构设计 347
12.2 树查看器的使用及属性设置 350
12.2.1 使用树查看器 350
12.2.2 设计实例——树形文件阅读器 352
12.3 表格型树查看器 355
12.3.1 创建树列查看器 355
12.3.2 创建表格型树查看器 358
12.4 带复选框的树 360
12.4.1 创建复选框树查看器 360
12.4.2 应用举例 361
12.5 JFace的其他查看器 362
12.5.1 列表查看器 362
12.5.2 组合框查看器 367
12.5.3 文本查看器一瞥 372
12.5.4 控件装饰 373
12.6 习题 373
第13章 综合实例 375
13.1 模块的划分与设计 375
13.1.1 登录模块 375
13.1.2 学生模块 375
13.1.3 教师模块 376
13.1.4 管理员模块 376
13.2 管理员子系统的设计与实现 378
13.2.1 专业设置模块 378
13.2.2 课程设置与管理模块 382
13.2.3 管理员子系统主控模块 384
13.2.4 用户注册模块 386
13.2.5 班级排课模块的实现 392
13.2.6 系统管理 397
13.3 教师子系统的设计与实现 398
13.3.1 成绩登录 398
13.3.2 成绩查询 403
13.3.3 成绩统计 409
13.3.4 教师子系统主控界面 414
13.4 学生子系统的设计与实现 417
13.5 登录模块的实现 420
13.6 系统部署 421
参考文献 423