admin管理员组

文章数量:1534594

2024年5月9日发(作者:)

第十八章 图形界面开发--AWT,Swing,

SWT

第十八章 图形界面开发--AWT,Swing,1

18.1 图形界面简介.....................................................................................................1

18.1.1 概述.........................................................................................................2

18.1.2 Java的GUI类库发展简介..........................................................................3

18.1.3 标准图形界面的组成................................................................................4

18.1.4 常见的可视化界面开发软件.....................................................................5

18.2 Applet开发..........................................................................................................6

18.2.1 Applet的HelloWorld开发...........................................................................6

18.2.2 Applet的运行方式.....................................................................................7

18.2.3 Applet的生命周期...................................................................................13

18.2.4 Applet安全限制和签名15

18.2.5 Applet参数传递和JavaScript互操作........................................................19

18.2.6 从JDK的自带例子中学习Applet和图形界面编程....................................29

18.3 使用Matisse4MyEclipse开发AWT/Swing应用..................................................30

18.3.1 安装开发插件........................................................................................30

18.3.2 可视化开发30

18.3.3 调整生成代码和换肤..............................................................................39

18.3.4 开发UDP局域网聊天桌面应用...............................................................41

18.3.5发布应用、启动文件制作........................................................................52

18.4 使用Jigloo插件开发SWT/Swing应用...............................................................59

18.4.1 Jigloo插件的下载安装............................................................................59

18.4.2 搭建SWT开发环境.................................................................................60

18.4.3 使用Jigloo开发SWT应用.......................................................................65

18.4.4 Jigloo开发SWT的常见问题....................................................................69

18.4.5 Jigloo 开发 Swing应用..........................................................................71

18.5 参考资料..........................................................................................................73

18.5.1 网址.......................................................................................................73

18.5.2 Java应用播放声音的代码示例................................................................74

18.5.3 JavaScript 包的英文参考文档................................................................78

16.5.4 Eclipse中插件的安装..............................................................................83

18.6 小结.................................................................................................................84

18.1 图形界面简介

本节简要讨论图形界面,由于定位是开发为主,所以理论之处的讲解并不多,希望读者

理解,并自行寻找更多资料补充自学。另外提示,对图形界面无兴趣,或者工作根本用不到

1

刘长炯著

的读者,完全可以忽略本章的内容。

18.1.1 概述

在本书刚开始计划写的时候,选的书名是《MyEclipse 6 Java EE 开发中文手册》,后

来才改成了现在的这个名字:《MyEclipse 6 Java 开发中文教程》。这是因为Java的覆盖面

要比Java EE大些,Java的开发也不是除了做做网页(一般加以专业称呼为Java EE开发),

而且考虑到实际情况,在一般公司中经常出现维护老项目的现象,如果是在校学子做毕业设

计,也会用到一些目前来说不是太“主流”的技术,在Java中,经常就是指图形界面开发。

那么图形界面开发到底在实际中有没有用?回答是肯定的:有!大家想想,打开Windows

后看到的是什么?窗口!那就对了,所有这些都是图形界面应用。IE浏览器本身,也是个

带界面,能够用鼠标键盘操作的图形应用。至于游戏,那就是专门主攻图形学的带界面应用。

绝对上讲,没有界面的应用是不存在的。界面是电脑和人脑沟通的窗口。类似于DOS,Linux

那样的命令行的,叫文字界面。其它所有带有窗口,一般支持鼠标,键盘,手柄等的,都属

于图形界面。至于Java的开发,所用到的开发工具,例如JBuilder,Eclipse,MyEclipse,

Netbeans,无一不是图形界面的应用。但是长期以来,由于种种原因(我想其中最重要的

原因大概是速度,内存占用和系统集成度),图形界面一直没能成为Java开发的主流,尤

其在国内,做JSP成了Java开发的代名词,但是国外的情况好很多,出现了很多基于Swing

的优秀软件。我想国内的电脑普遍配置过低也是个很重要的因素。但是,这并不影响Java

图形界面的应用广度,很多项目,尤其是比较综合的项目,都还是用到了图形界面的开发,

例如Applet技术,客户端软件,以及最近非常流行的Eclipse 下的SWT/JFace/RCP(Rich

Client Platform,富用户客户端平台)软件开发,它们都是图形界面的软件。而且,在公司,

很多老项目,可能是用Applet搭建,或者是完全用Swing实现的,这时候,您都不得不维

护它,因为客户用习惯了一样东西后,是很难再做改变的,例如笔者此前就职的那家外企,

就有大量的Swing应用。至于做算法的,一般也都会和一些界面结合起来,制作一些Demo

应用。如果是图形相关的,那更是100%要做界面了,虽然Java中的图形算法由于虚拟机

本身的原因执行效率低一些。

Java中的图形界面系统和JVM一样,也是分为四个层次(大致的划分,并未参考权威

的资料):操作系统图形设备层 > 虚拟机本地代码层 > Java

封装层 > 用户应用层。由于

画图依赖操作系统的功能,所以,在一些服务器上,例如没有安装XWindows系统的Linux

服务器,不能执行图形界面应用。又由于Java的图形界面采用了最大公约数的做法,所以

和底层的语言例如C++相比,其功能总是感觉少,例如托盘功能(桌面最右下角的那部分

区域),也是最近才加入的(JDK1.6支持)。虚拟机本地代码层体现在大量的DLL文件上,例

如jre/bin/,就是Java的AWT类的C代码的封装,所有的键盘和鼠标操作,都通过

它来进行(换句话说纯Java是做不到的)。使用微软的VC++中提供的一款工具

Dependency Walker,可以看到其中的DLL中封装的函数列表,如图18.1所示。所以一般

对Java访问系统级功能的操作,例如访问注册表,都需要额外使用C++代码来实现,一般

也不跨平台,这也是Java的图形界面开发一直没能流行开来的一个原因,甚至于现在出现

了Eclipse力挺的SWT,这样的局面还是依然不能结束。

2

刘长炯著

本文标签: 图形界面开发应用例如界面