- 1、本文档共65页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]第6章 GUI编程
第6章 GUI编程 现代的用户倾向于使用可以由鼠标方便操作的图形用户界面(GUI-Graphical User Interface)程序。本章的内容就是介绍如何使用JFC(Java Foundation Class)中的Swing组件(Component)来构建GUI应用程序。 6.1 Swing起步-Swing概述 在Java1.0中,已经有一个用于GUI编程的类库AWT(Abstract Window Toolkit),称之为抽象窗口工具箱。遗憾的是,AWT中的组件(例如按钮,类名为Button)在实现中使用了本地代码(Native Code),这些组件的创建和行为是由应用程序所在平台上的本地GUI工具来处理的。因此,AWT组件要在不同的平台上提供给用户一致的行为就受到了很大的限制。同时,AWT组件中还存在很多bug,这就使得使用AWT来开发跨平台的GUI应用程序困难重重。 1996年,SUN公司和Netsacpe公司在一个称为Swing的项目中合作完善了Netsacpe公司原来开发的一套GUI库,也就是现在所谓的Swing组件。Swing组件和原来的AWT组件完全不同,最大的区别就是Swing组件的实现中没有使用本地代码,这样对底层平台的依赖型就大为降低,并且可以给不同平台的用户一致的感觉。此外,和原来的AWT相比,Swing中提供了内容更多、使用更为方便的组件。 读者在阅读一些书籍时,常会遇到名词JFC(Java Foundation Class)。JFC的概念是在1997年的JavaOne开发者大会上首次提出的,是指用于构建GUI的一组API。实际上,Swing只是JFC的一部分,其它的还有二维图形(Java 2D)API以及拖放(Drag and Drop)API等等。 Swing概述-续 √在GUI编程中,使用什么样的GUI组件固然很重要,但是采用什么事件处理模型同样也很重要。Java 1.0中,AWT的事件处理模型是很不完善的。Java 1.1中使用新的AWT事件处理模型,在此之后,未作变动。在编写本书时,使用的仍旧是1.1的事件处理模型。 √Swing并不是完全取代了AWT,Swing只是使用更好的GUI组件(如JButton)代替AWT中相应的GUI组件(如Button),并且增加了一些AWT中原来所没有的GUI组件。并且,Swing仍使用AWT 1.1的事件处理模型。 √虽然现在AWT组件仍得到支持,但是建议在你的应用程序中尽量使用Swing组件和1.1的事件模型。 6.1.2 一个GUI实例 下面的这个应用程序很简单,只是在屏幕上显示一个框架组件(JFrame): import javax.swing.*; public class FirstGUI{ public static void main(String []args){ JFrame f=new JFrame(); //创建一个框架对象f f.setTitle(FirstFrame); //设定框架的标题 f.setSize(250,100); //设定框架的大小 f.show(); //显示框架 } } GUI实例-续 √Swing中的组件是“轻量级”(lightweight)组件,并且每个组件都可以是一个容器。可以向任何一个组件中添加其它的组件,但是顶层容器类型的组件不能添加到任何其它组件中。此外,任何一个Swing组件要想在屏幕上显示出来,最终都必须由一个顶层容器来容纳。 √Swing中组件的类名通常以J开头(如JFrame),以区别于AWT中相应的组件(如Frame)。Swing位于包javax.swing中,javax是java extension的缩写形式,表示Swing包是java的一个扩展包。 6.1.3 面板 JPanel 是常用的Swing组件之一。JPanel本身也是一个容器,可以向其中添加其它GUI组件(如按钮JButton);但是JPanel不是顶层容器,因此,要在屏幕上显示JPanel,必须将它添加到一个顶层容器(如JFrame)中。JPanel还具备在自身表面绘制图形的功能,可以通过定制的方式在面板表面绘制各种图形。 √Swing中允许组件嵌套添加,例如:可以将一个JButton添加到一个JPanel中,再将JPanel添加到JFrame中。在构建复杂的用户界面时,常常需要使用这种嵌套添加的方式。 √Swing中还允许将一个组件添加到同类型的组件中,例如:可以将一个JPanel添加到另一个JPanel中去。 6.1.3.1作为容器 import javax.swing.*; import java.awt.*; public c
文档评论(0)