- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图形界面程序设计讲稿.
图形界面程序设计
Part I:界面设计
使用图形组件类和容器类进行GUI设计时,需要引入相应的包或者类。在Java 中,能够实现图形用户界面的类库有两个:java.awt 和javax.swing。前者称为抽象窗口工具库AWT(Abstract Windows Toolkit),后者是Java 基础类库JFC(Java Foundation Classes)的一个组成部分,它提供了一套功能更强、数量更多、更美观的图形用户界面组件。Swing 组件名称和AWT 组件名称基本相同,但以J 开头,例如AWT 按钮类的名称是Button,在Swing 中的名称则是JButton。在java中,AWT包中的类是用来处理图形的最基本的方式,它是Sun公司早期所推出和使用的图形组件包,其中的组件包含基本GUI组件类、容器类、布局管理类,事件处理类和基本图形类这五种。AWT包中的组件被认为是重量级组件,AWT在实际运行中是调用所在平台的图形系统,它们依赖于本地系统来支持绘图与显示,其运行速度慢效果差,系统相关性较强。在1998年Sun Microsystem推出JDK1.2版本时,新的javax.Swing包被增加到java的基础类库中。Swing包可以认为是AWT包的升级。它不仅拥有几倍于AWT包的用户界面组件,而且同样的组件,Swing包中的组件往往可设置属性更多,功能更强大丰富。例如Swing包中按钮(Button)的功能较AWT包中的按钮功能更加强大,包括给按钮添加图像、使用快捷键以及设置按钮的对齐方式,还可以给按钮加入图片做背景。
Swing采用MVC(模型-视图-控制)的设计范式,使程序员可以根据不同的操作系统来选择不同的外观。Swing组件完全是用Java代码实现的,可以跨平台,使用Swing组件的程序在Mac、Windows或Unix平台上的观感都一样。Swing组件通常被称为轻量级组件。程序设计过程中最好不要混用Swing组件和AWT组件,虽然有时候也可以同时用,但有可能在视觉效果和响应上造成不稳定隐患。
AWT包中常用的顶层容器为Frame、Dialog、Applet,中间层容器为Panel(中间层容器是一种可以放到顶层容器上的组件,它可以把顶层容器进行进一步的区域划分以设计所需格局的界面)。常用的普通组件有Button、TextField、TextArea、Label、List等。
Swing包中的组件分类主要为:
(1)顶层容器:JFrame、JApplet、JApplet、JDialog。
(2)中间层容器:JPanel、JScrollPane、JSplitPane、JToolBar。
(3)其它基本组件:JButton、JList、JTextField等。
关于布局,其实每种容器都有默认的布局,当设计者没有指定使用另外的布局时,放到它上面的组件就会按默认布局方式摆放。在AWT和Swing中都可对容器设置布局,都是调用容器对象的setLayout方法。布局有几种,这里作简单说明,具体请大家从示例程序的运行以及JDK API文档中查阅这些布局类的说明文档来体会:
(1)FlowLayout布局:顺序布局,有时又称流式布局。使用该布局时,容器上的元素会按容器显示时的大小,按照从左到右、从上倒下的一行一行摆放下去。
(2)BorderLayout布局:边界布局。它可以把容器分为东西南北中5个方位,可以指定某个组件在哪个方位(但注意并非一定要有5个组件摆上去,不足5个也可指定位置摆放)。
(3)GridLayout布局:网格布局。可以指定容器上的元素按几行几列的位置顺序摆放。
(4)CardLayout布局:卡片布局。使用该布局的容器可放置多个组件,但同一时刻只能显示其中一个,就像一叠叠整齐的纸牌中每次只能最上面一张一样。可以指定哪个组件被显示。
(5)null布局:空布局。空布局并非没有布局,而是容器被设置为这种布局以后,放到它上面的每个组件就可以通过setBounds(int a,int b,int width,int height)来设置其具体的位置。
(6)另外还有BoxLayout(盒式布局)、GridBagLayout(网格包布局)等不常用布局。
在具体的程序设计时,上述每一种布局都对应是一个类,用它们定义出来的对象作为容器对象的setLayout方法的参数,就可以把容器设置成该参数所对应的布局了。
仔细阅读、体会、运行和模仿学习后面的多个例子程序(注意代码注释中所提示的各种细节问题),我们可以最后再次总结出“界面设计”的步骤:
(1)定义顶层容器对象。 (2)用容器对象的setLayout方法给容器设置一种布局。 (3)定义普通图形组件。 (4)调用容器对象的add方法将普通图形组件添加到容器
文档评论(0)