
Java是当今比较流行的程序设计语言之一,GUI(
Graphical User Interface,图形用户界面)是当今计算机程序和用户之间的主流接口。使用可视化方法开发Java GUI程序具有直观、快捷、易学易用等优点。
本书以**版的Apache NetBeans IDE为开发环境,采用Swing开发工具包提供的GUI组件,使用GUI构建器为可视化开发工具,结合学生成绩管理系统和资源管理器式文本阅读器等实例程序的逐步设计过程,详细阐述了窗口、基本组件、布局管理、容器、事件处理、菜单、工具栏、表格和树等组件的可视化创建、属性设置、事件处理、数据呈现及其在Java GUI程序设计中的应用,阐述了Java GUI程序的设计思路、可视化快速开发方法和步骤,以及程序设计必要的相关知识、原理和开发工具的使用方法与技巧。
通过本书的学习,读者可以快速具备完整的图形用户界面的程序设计能力。本书适合作为高等院校计算机相关专业
“可视化程序设计”(Java方向)和“Java GUI程序设计”等课程的教材,也适合非计算机专业具有Java基础的学生以及Java GUI程序设计爱好者自学使用。
桌面GUI(图形用户界面)程序是当今使用广泛的计算机应用程序。在Java语言开发领域,桌面应用程序和C/S结构的企业级分布式网络应用程序都需要设计GUI。以使用类库和代码编写为主的方式设计GUI程序时,设计和运行效果一般靠设计者的经验和形象思维进行预判,对程序员要求比较高,且设想的结果与实际显示结果之间存在一定的差距,设计效率也较低。可视化GUI设计方法易学易用,开发速度快,且能激发学习兴趣。
本书是作者编著出版的“可视化Java GUI程序设计”系列教材之《可视化Java GUI程序设计教程——基于Swing组件库及NetBeans IDE》的更新修订版。本书第1版使用和讲述的NetBeans已于2016年由Oracle公司捐赠给了Apache软件基金会继续开发和维护,Apache NetBeans的界面和功能都有了变化; JDK更新了近十个版本,Java语法也有了发展,使得Java GUI程序可以编写得更为简洁优雅。本书第2版采用Apache NetBeans 12.2开发环境,英文软件界面和Ant项目构建工具; 对例题项目的程序进行了重构改进,将简易学生成绩管理系统中有关数据库的操作全部移到了相关的DAO类中,从而进一步突出了GUI的编程; 同时,程序中使用了switch表达式、Lambda表达方式等Java语言的新语法; 删除了Apache NetBeans目前尚不支持的数据绑定节次; 为精简篇幅、方便教学,删除了较为次要的原第1版中的“第11章 系统资源的使用”。
全书共分为11章。第1章简要介绍GUI的概念、发展和基本组成,介绍Java GUI程序的实现原理,可视化程序设计的概念,开发环境的搭建及其界面。第2章以设计一个简单的用户登录GUI为例,较为详细地介绍了GUI构建器的使用方法和技巧,同时还介绍了标签、文本字段、按钮以及按钮组等基本Swing GUI组件的可视化设计方法。第3章介绍了Java GUI程序的事件处理概念和机制,事件监听器的设计方法,常用事件及其监听器接口的实现方法,使用SwingWorker改进程序GUI反应速度和性能的思路及方法。第4章介绍了AWT和Swing各类主要布局管理器的特点、使用方法和设计技巧,以及Swing填充器组件的使用。第5章介绍了Swing主要容器组件的使用方法、属性设置及应用,多文档界面(MDI)的设计方法,以及工具栏的设计。第6章介绍了对话框、选项窗格、颜色选择器和文件选择器的设计与使用方法。第7章介绍了菜单、各类菜单项和弹出式菜单的设计与使用方法。第8章介绍了文本输入控件、选择控件、数值组件和系统托盘的设计与使用方法。第9章介绍了使用NetBeans IDE操作数据库的方法,Swing表格组件的创建与定制方法,数据库表等表格组件数据源的使用方法。第10章介绍了树组件的构建、树节点设计、路径描述与选择、节点绘制与编辑等内容。第11章对前面各章陆续设计的简易学生成绩管理系统的界面和模块进行了整合,对这些界面和模块进行了程序实现和组装,最终使它们成为一个基本完整的应用系统。曹建英教授修改编写了第2~4章。
学习本书之前需要具备Java程序设计基础。本书的案例代码等教学资源请到清华大学出版社官方网站下载,也可以到超星MOOC在线课程网站下载。
本书内容参考了《Java核心技术 卷Ⅰ: 基础知识/卷Ⅱ: 高级特性 第8版》(Cay S.Horstmann),Java GUI应用程序学习资源https://netbeans.org/kb/trails/matisse_zh_CN.html,mylxiaoyi 网友的博文(mylxiaoyi.blog.chinaunix.net)等,作者在此对他们表示衷心感谢!同时感谢陇东学院为作者提供使用本书讲授Java方向可视化程序设计课程的机会。感谢清华大学出版社
为本书的出版所付出的辛勤劳动。
赵满来
2021年2月
第1章概述
1.1GUI简介
1.1.1GUI概述
1.1.2计算机GUI简史
1.1.3GUI的基本组成
1.2Java GUI组件库简介
1.2.1AWT
1.2.2Swing
1.2.3SWT/JFace
1.3Java GUI程序的实现原理
1.3.1程序的图形用户界面显示原理
1.3.2Java GUI程序的构成
1.3.3Java GUI组件的布局
1.3.4用户交互与事件循环
1.4可视化程序设计
1.4.1可视化程序设计的概念
1.4.2可视化程序设计发展简况
1.5安装Apache NetBeans并认识GUI构建器
1.5.1安装JDK
1.5.2Apache NetBeans的安装
1.5.3NetBeans GUI构建器的界面
1.5.4NetBeans GUI构建器的可视化设计思想
习题
第2章NetBeans GUI构建器的使用及基本组件的设计
2.1创建Java GUI项目
2.1.1NetBeans IDE项目的概念
2.1.2创建Java GUI项目的一般步骤
2.1.3设置项目配置
2.2程序窗口的创建与设置
2.2.1JFrame的创建步骤
2.2.2JFrame的属性设置
2.3添加组件与GUI构建器的可视反馈功能
2.3.1添加单个组件
2.3.2可视反馈功能
2.4标签和文本字段的设计
2.4.1标签的属性
2.4.2文本字段的属性
2.4.3设计实例
2.5组件的成组设计
2.5.1添加多个组件
2.5.2插入组件
2.5.3创建按钮组
2.5.4单选按钮及按钮组的属性设置
2.6按钮及口令字段的设计
2.6.1按钮的设计
2.6.2复制、粘贴和删除组件
2.6.3口令字段的设计
2.7部署和运行Java GUI应用程序
2.7.1使用Swing布局扩展库
2.7.2构建应用程序
2.7.3分发及运行独立的GUI应用程序
习题
第3章GUI交互功能设计——事件处理
3.1事件处理的概念及委托事件处理模型
3.1.1事件的概念
3.1.2事件处理模型
3.1.3Swing GUI事件处理程序的设计步骤
3.2事件处理的设计
3.2.1实现监听器接口
3.2.2从事件适配器派生
3.2.3匿名内部事件监听器类
3.2.4代码保护及事件处理代码的复用
3.2.5管理事件监听器
3.2.6用NetBeans IDE连接向导设置事件
3.3常用事件监听器
3.3.1鼠标事件
3.3.2键盘事件
3.3.3焦点事件
3.3.4组件专用事件
3.4使用SwingWorker
3.4.1正确使用事件派发线程
3.4.2SwingWorker类
3.4.3SwingWorker类的使用
习题
第4章布局设计
4.1布局管理器概述
4.1.1NetBeans IDE布局概况
4.1.2绝对布局和空值布局
4.1.3布局管理器的属性和组件布局属性
4.2自由设计
4.2.1NetBeans的自由设计概述
4.2.2GUI构建器的间距编辑
4.2.3组件对齐、自动调整大小及相同大小
4.2.4自由设计示例
4.3网格式布局和网格包布局
4.3.1网格式布局GridLayout
4.3.2网格包布局GridBagLayout
4.3.3网格包布局定制器
4.3.4网格包布局应用实例
4.4简单布局管理器
4.4.1流式布局FlowLayout
4.4.2边框式布局BorderLayout
4.4.3卡片式布局CardLayout
4.4.4叠加布局OverlayLayout
4.5盒式布局BoxLayout
4.5.1组件的最小、最大与首选尺寸
4.5.2BoxLayout的使用与Axis属性
4.5.3组件alignmentX和alignmentY属性与BoxLayout
4.6填充器
4.6.1Glue
4.6.2Horizontal Glue
4.6.3Vertical Glue
4.6.4Horizontal Strut
4.6.5Vertical Strut
4.6.6Rigid Area
习题
第5章Swing容器的使用
5.1面板容器
5.1.1使用方法
5.1.2属性
5.1.3应用举例
5.2滚动窗格
5.2.1使用方法
5.2.2内部组成及属性设置
5.2.3文本区域
5.3拆分窗格
5.3.1使用方法
5.3.2属性
5.3.3列表初步
5.3.4应用举例
5.4标签化窗格
5.4.1标签化窗格的组成及使用
5.4.2属性
5.4.3应用举例
5.5Swing面板层次与分层窗格
5.5.1Swing面板层次
5.5.2分层窗格的使用
5.5.3应用举例
5.6桌面窗格与内部框架
5.6.1桌面窗格的使用
5.6.2内部框架
5.6.3多文档界面的设计方法
5.6.4应用举例
5.7工具栏
5.7.1使用方法
5.7.2应用举例
习题
第6章对话框与选择器的使用
6.1对话框
6.1.1对话框的使用
6.1.2应用举例
6.2选项窗格
6.2.1通过工厂方法使用选项窗格
6.2.2通过创建选项窗格组件使用
6.3颜色选择器的使用
6.3.1通过创建颜色选择器组件使用
6.3.2通过工厂方法使用颜色选择器
6.4文件选择器
6.4.1文件选择器的使用
6.4.2文件选择器的属性
6.4.3fileFilter
6.4.4accessory
6.4.5fileView
6.4.6应用举例
习题
第7章Swing菜单的设计
7.1菜单栏
7.1.1菜单栏的使用
7.1.2selectionModel
7.2菜单
7.2.1创建菜单
7.2.2属性
7.3菜单项
7.3.1菜单项的设计与使用
7.3.2复选框菜单项
7.3.3单选按钮菜单项
7.4分隔符
7.5Action及其使用
7.5.1Action接口
7.5.2实现Action
7.5.3使用Action
7.6弹出式菜单
7.6.1弹出式菜单的设计
7.6.2应用举例
习题
第8章Swing控件的使用
8.1文本输入控件
8.1.1格式化字段
8.1.2编辑器窗格
8.1.3文本窗格
8.1.4应用举例
8.2选择控件
8.2.1开启/关闭按钮
8.2.2复选框
8.2.3组合框
8.2.4列表
8.3数值组件
8.3.1滑块
8.3.2滚动条
8.3.3进度栏
8.3.4微调器
8.4系统托盘
8.4.1系统托盘SystemTray的获取与使用
8.4.2系统托盘图标TrayIcon的设计
8.4.3系统托盘的事件处理
8.4.4应用举例
习题
第9章表格组件与数据库的使用
9.1NetBeans IDE的数据库操作
9.1.1Derby数据库的安装与运行
9.1.2设置与建立数据库连接
9.1.3操作数据库
9.1.4使用外部SQL脚本
9.1.5重新创建来自其他数据库的表
9.2使用NetBeans生成实体类
9.2.1创建表的实体类
9.2.2设计DAO封装数据库操作
9.3表格的创建及属性设置
9.3.1表格的创建
9.3.2表格组件的属性
9.4表格模型
9.5操作表格列和表格行
9.5.1操作表格列
9.5.2操作表格行
9.6排序与过滤
9.6.1表格行的排序
9.6.2表格行的过滤
9.7表单元的编辑
9.7.1指定表格单元的可编辑性
9.7.2使用默认编辑器
9.7.3自定义编辑器
习题
第10章树的设计与使用
10.1树的设计
10.1.1创建树
10.1.2树组件的属性设置
10.2节点与树模型
10.2.1树节点
10.2.2树模型
10.2.3使用JTree
10.3路径选择与节点枚举
10.3.1树路径
10.3.2节点枚举
10.3.3选择路径
10.3.4子树的展开与折叠
10.4节点绘制
10.4.1cellRenderer属性
10.4.2自定义树的绘制器
10.5树的编辑
10.5.1树节点内容的编辑
10.5.2树的编辑
习题
第11章综合实例
11.1功能模块的划分
11.1.1登录模块
11.1.2学生模块
11.1.3教师模块
11.1.4管理员模块
11.2管理员子系统设计与实现
11.2.1专业设置模块
11.2.2课程设置与管理模块
11.2.3用户注册模块
11.2.4排课选课
11.2.5账户管理
11.2.6管理员子系统主控模块
11.3教师子系统设计与实现
11.3.1成绩登录
11.3.2成绩查询
11.3.3成绩统计
11.3.4教师子系统主控界面
11.4学生子系统的设计与实现
11.5系统部署
11.5.1在Java GUI程序中启动和关闭Derby数据库服务器
11.5.2程序分发包
通过本书的学习,可以使读者快速具备完整的图形用户界面程序的设计开发能力。
本书适合作为高等院校计算机相关专业“可视化程序设计”和“Java GUI程序设计”等课程的教材,也适合于具有Java基础的非计算机专业学生以及Java GUI程序设计爱好者自学。
赵满来,男,1963年5月生人,教授,1985年7月至今在陇东学院从事计算机类课程教学工作。主讲Java程序设计、可视化程序设计(Java方向)、Java Web项目开发等课程。2010年——2018年在清华大学出版社出版《可视化Java GUI程序设计教程——基于Swing组件库及NetBeans IDE》等教材5部。