欢迎来到天天文库
浏览记录
ID:29440638
大小:2.34 MB
页数:11页
时间:2018-12-19
《chapter11(my--java教案)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第十一章建立GUIs 本模块讲述图形用户界面的建立及布局。它介绍了抽象视窗工具包,一种建立GUIs(图形用户界面)的类包。第一节AWTAWT提供用于所有Javaapplets及应用程序中的基本GUI组件,还为应用程序提供与机器的界面。这将保证一台计算机上出现的东西与另一台上的相一致。在学AWT之前,简单回顾一下对象层次。记住,超类是可以扩展的,它们的属性是可继承的。而且,类可以被抽象化,这就是说,它们是可被分成子类的模板,子类用于类的具体实现。显示在屏幕上的每个GUI组件都是抽象类组件的子类。也就是说,每个从组件类扩展来的图形对象都与允许它们运行的大量方法和实
2、例变量共享。Container是Component的一个抽象子类,它允许其它的组件被嵌套在里面。这些组件也可以是允许其它组件被嵌套在里面的容器,于是就创建了一个完整的层次结构。在屏幕上布置GUI组件,容器是很有用的。Panel是Container的最简单的类。Container的另一个子类是Window。Java.awt包Java.awt包包含生成WIDGETS和GUI组件的类。该包的基本情况如下图所示。黑体字的类表明该模块的要点。第二节建立图形用户界面1、ContainerContainer有两个主要类型:Window和PanelWindow是Java.awt
3、.Window.的对象。Window是显示屏上独立的本机窗口,它独立于其它容器。Window有两种形式:Frame(框架)和Dialog(对话框)。Frame和Dialog是Window的子类。Frame是一个带有标题和缩放角的窗口。对话没有菜单条。尽管它能移动,但它不能缩放。114Panel是Java.awt.Panel的对象。Panel包含在另一个容器中,或是在Web浏览器的窗口中。Panel确定一个四边形,其它组件可以放入其中。Panel必须放在Window之中(或Window的子类中)以便能显示出来。注—容器不但能容纳组件,还能容纳其它容器,这一事实对于
4、建立复杂的布局是关键的,也是基本的。滚动块也是Window的一个子类。它在模块10“AWT组件集”里讨论。2定位组件容器里的组件的位置和大小是由布局管理器决定的。容器对布局管理器的特定实例保持一个引用。当容器需要定位一个组件时,它将调用布局管理器来做。当决定一个组件的大小时,同样如此。布局管理器完全控制容器内的所有组件。它负责计算并定义上下文中对象在实际屏幕中所需的大小。3组件大小因为布局管理器负责容器里的组件的位置和大小,因此不需要总是自己去设定组件的大小或位置。如果想这样做(使用setLocation(),setSize()或setBounds()方法中的任
5、何一种),布局管理器将覆盖你的决定。如果必须控制组件的大小或位置,而使用标准布局管理器做不到,那就可能通过将下述方法调用发送到容器中来中止布局管理器:setLayout(null);做完这一步,必须对所有的组件使用setLocation(),setSize()或setBounds(),来将它们定位在容器中。请注意,由于窗口系统和字体大小之间的不同,这种办法将导致从属于平台的布局。更好的途径是创建布局管理器的新子类。第三节FramesFrames是Window的一个子类。它是带有标题和缩放角的窗口。它继承于Java.awt.Container,因此,可以用add(
6、)方式来给框架添加组件。框架的缺省布局管理器就是BorderLayout。它可以用setLayout()方式来改变。框架类中的构造程序Frame(String)用由String规定的标题来创建一个新的不可见的框架对象。当它还处于不可见状态时,将所有组件添加到框架中。1.importjava.awt.*;2.publicclassMyFrameextendsFrame{3.publicstaticvoidmain(Stringargs[]){6.MyFramefr=newMyFrame("HelloOutThere!");7.fr.setSize(500,500)
7、;4.fr.setBackground(Color.blue);5.fr.setVisible(true);6.}7.publicMyFrame(Stringstr){8.super(str);9.}10.}上述程序创建了下述框架,它有一个具体的标题、大小及背景颜色。114注—在框架显示在屏幕上之前,必须做成可见的(通过调用程序setVisible(true)),而且其大小是确定的(通过调用程序setSize()或pack())。第四节Panels象Frames一样,Panels提供空间来连接任何GUI组件,包括其它面板。每个面板都可以有它自己的布管理程序。一旦
8、一个面板对象被创建,为了
此文档下载收益归作者所有