- Java语言GUI程序设计
- 赵满来
- 2990字
- 2025-02-28 01:27:57
前言
Java语言是近二十年来最为流行的通用面向对象程序设计语言,目前国内主要的应用集中在基于网络的Web开发领域。由于Web程序开发的复杂性,因此给人们的感觉是对于Java语言要学习的内容多且杂,学习耗时长,学习曲线较陡。事实上,在近十多年来的编程语言排行榜的前几位中,Java语言的语法比C++简单,采用的面向对象程序设计思想更接近人类的思维,比C语言更容易理解,比C#和Visual Basic具有更好的硬件和操作系统的通用性。尽管Python更简单易学,但Java语言具有更成熟和完善的GUI可视化开发工具,可以开发大型复杂程序,且程序运行速度更快。随着版本的不断升级,Java语言本身逐步引入了各种先进的语言特性而变得更加先进高效;随JDK(Java开发工具及类库)发布的Java语言标准类库不断扩充,已提供了主要经典算法和数据结构的成熟实现,包括大量第三方开发的类库提供了解决大多数通用问题的程序模块。在普通图形用户界面桌面程序开发方面,Java语言有Swing库和SWT/JFace库提供的全面GUI组件库的支持,还有包括NetBeans IDE、Eclipse WindowBuilder及IntelliJ IDEA完善的可视化GUI开发工具,可以采用所见即所得的方式“画”出Java程序的图形用户界面,甚至可以用“画图”方式将数据库等数据源与GUI组件连接起来。
作者长期从事大学公共类“计算机程序设计”“Java语言”及“可视化Java GUI程序设计”课程的教学工作,认同面向各类不同专业的第一门程序设计语言的教学应该首先引发初学者的学习兴趣,并且随着教学内容的深入形成正向兴趣循环;在课程的开始阶段就应该让学生看到所学的知识和技术的价值,能够尽早设计出与主流程序一样的程序——至少是有窗口和按钮等元素的GUI程序,而不是字符界面的命令行程序,让学生能比较容易地获得成就感,感悟到软件开发的魅力;在课程教学的初期阶段对初学者屏蔽不必要的底层技术细节,以降低学习难度,避免分散学习者的注意力,待引起他们的兴趣和好奇心之后再介绍必要的底层内容;所选的程序设计语言和所学习的内容必须能充分体现现代软件开发的基本思想和技术成果,学生为此所花费的时间和精力有足够回报,为后续进一步深入学习打下基础,并掌握一个强大的解决实际问题的工具。
作者结合讲授公共及专业程序设计课程,以及编写可视化Java GUI程序设计教材(4部已在清华大学出版社出版发行)的经验,认为选择Java语言为各专业通用的第一门程序设计语言完全满足上述需求,并能使初学者一开始就学习先进的面向对象程序设计思想及技术,立于程序设计技术的潮头;本书对程序设计知识、语法、程序设计思想和技术的讲解所使用的例题和习题等完全采用GUI展开,可以使初学者一开始就学习实际系统中主流GUI程序的设计思想、方法和规则,直接掌握设计普通实用GUI程序的能力;应用Java标准类库的组件学习Java应用程序的设计,避开各种通用算法和数据结构的底层细节,可以降低学习难度,提高学习效率,也适合实现学习一般应用型Java程序设计技术的目标。基于上述教学理念和思想,作者尝试编写了这本应用型《Java语言GUI程序设计》教材,以期为第一门程序设计课程和初学者提供一种既能像Visual Basic一样简单易学,又能使用Java语言的强大功能解决各类复杂编程问题的途径。
本书以NetBeans IDE为开发工具,以Java语言基础知识和基本语法、Java GUI程序的可视化设计方法及最新的Java SE 8和Java SE 9等版本类库中有关的实用类的使用为主要内容,介绍Java面向对象程序设计方法及Java GUI程序设计方法。全书共分为12章,主要内容如下。
第1章回答什么是计算机程序、什么是计算机软件、什么是计算机程序设计、什么是编程范式、什么是计算机程序设计语言等一般性问题,介绍Java程序设计语言的基本概况,图形用户界面的基本组成及Java GUI程序的基本构成,最后介绍Java GUI程序开发环境的搭建。
第2章首先以可视化方法快速设计了一个简单的Java GUI程序,然后通过对NetBeans IDE自动生成的程序代码的分析,认识Java GUI程序的基本结构以及其构件——对象和类,进一步介绍NetBeans IDE的GUI构建器的使用方法和技巧,以及采用可视化方法使用几个简单Swing GUI组件设计简单Java GUI程序的方法。
第3章介绍Java语言的最基本语法成分,包括变量、常量、运算符、表达式及流程控制语句,并引入Java SE 9中提供的JShell作为练习环境以提高学习效率。
第4章介绍Java语言面向对象程序设计基本思想和语法结构,包括面向对象程序设计三大基本特性——封装、继承和多态性,接口,内部类及Lambda表达式。
第5章介绍Java GUI程序的事件驱动机制、委托事件处理模型及事件处理程序的设计方法,常用事件监听器的设计方法,Java Bean构件设计的初步知识及方法,Swing组件的属性绑定方法。
第6章从应用角度介绍Java语言有关数据集存储和处理的语言成分及类库,包括数组、字符串、泛型及枚举、数据集合框架及常用的集合类,使用Java 8新增的Stream工具对数据集进行高效的操作和计算分析的方法。
第7章介绍Java语言的异常处理、文件操作及输入输出,包括传统的流式字节和字符数据的输入输出,JDK 1.4起增加的面向块的基于缓冲的通道式I/O类库(NIO),以及Java SE 7新增的异步通道I/O类库和新的文件系统类库(NIO.2)。
第8章介绍Java GUI组件库Swing提供的常用布局管理器及容器的可视化设计方法,以及复杂Java GUI界面布局的可视化设计方法。
第9章介绍Java数据库程序设计基础知识和技术,包括关系数据库系统基本知识和SQL语句的语法,JDK自带的数据库管理系统Java DB的基本知识及其在NetBeans IDE中的基本使用方法,在Java程序中使用JDBC访问数据库的技术及Java语言的语法成分——注解。
第10章全面介绍Swing控件的使用方法,包括以可视化方法使用Swing表格、列表和组合框提取数据库中数据的技术,各种数值输入控件和选择控件的使用方法,树组件的设计与使用方法。最后通过一个简单Java GUI程序的开发示例介绍Swing主要控件的应用,以及Java GUI数据库应用程序项目的开发过程。
第11章介绍Java GUI程序的菜单设计及对话框的使用方法,最后介绍驻留于桌面系统托盘程序的设计方法。
第12章介绍Java多线程并发程序设计基础知识,包括多种创建Java线程的方法以满足不同的需求,多线程同步控制的基本原理与方法,Java标准类库提供的高层次多线程并发程序设计技术,以及使用SwingWorker类设计遵循Swing单一线程规则的多线程Java GUI程序的技术。
本书的内容选择和编写定位于应用型本科、专科、中职和高职类院校的文、理、医、农及工科等类各专业学生的第一门程序设计课程教材,同时也适合各类具有初中以上文化基础的读者自学。在阅读本书和学习本课程过程中,建议对Java语言基本语法内容尽量在JShell环境下逐个语句练习体验,然后使用NetBeans IDE逐步设计自己想到的能够实现的任意GUI程序。对于书中所介绍的大多数Java标准类,例如数据集合框架及常用的集合类、输入输出类、常用事件监听器及Swing组件类等,只需了解和知晓,不必死记硬背,而应经常查阅Java API文档,练习和使用多了自然就会掌握。
本书的例题项目代码及各章演示文稿请到清华大学出版社的网站(www.tup.com.cn)下载。
本书写作过程中参考了Oracle网站的Java API文档和技术文档,IBM网站的技术文章,海子和林本托等网友的博文,《Java核心技术卷I》(第10版,[美] Cay S. Horstmann著)、Core Java® Volume II—Advanced Features(Tenth Edition, by Cay S. Horstmann)、《Java编程思想》(第4版,[美] Bruce Eckel著)、《Java 8基础应用与开发》(QST青软实训编著)、《Java 8高级应用与开发》(QST青软实训编著)、《Java程序设计教程》(第3版,雍俊海编著)、《可视化Java GUI程序设计教程——基于Swing组件库及NetBeans IDE》(赵满来编著)等资料,在此对这些资料的作者表示衷心感谢!感谢陇东学院著作基金资助,同时感谢清华大学出版社的帮助!
作者水平有限,书中疏漏和不当之处在所难免,恳请读者及老师批评指正,E-mail:ldxyzml@126.com。
赵满来
2018年3月