您好,欢迎访问三七文档
AWT8.1什么是AWT?AWT(AbstractWindowingToolkit):抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT由Java中的java.awt包提供,包含了用来建立与平台无关的图形用户界面(GUI)的类,这些类被称为构件Components。AWT是Java程序提供图形用户界面(GUI)的标准API之一。AWT提供的功能AWT支持图形用户界面编程的功能包括:用户界面构件;事件处理模型;图形和图像工具,包括形状、颜色和字体类;布局管理器,可以进行灵活的窗口布局而与特定窗口的尺寸和屏幕分辨率无关;数据传送类,可以通过本地平台的剪贴板来进行剪切和粘贴。一些关于AWT的讨论AWT(AbstractWindowToolkit)是早期的图形界面库,是很不成熟的东西,所以被贬AwkwardWindowToolkitAWT糟糕的设计选择使得Java:一次编写,到处运行一次编写,到处测试writeonce,runanywherewriteonce,testeverywhere”导致这种糟糕局面的一个可能原因据说是AWT从概念产生到完成实现只用了一个月的时间。改进办法:推出新的图形工具Swing8.2AWT的三个主要概念基本构件(Components):定义了所有的图形化界面元素及绘制方法。容器(Containers):可以容纳多个基本组件,以便统一操作和管理。布局管理器(Layouts):定义了布置、管理界面元素的方法。AWT--基本构件Java的图形用户界面的最基本组成部分是构件(Component),构件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮,一个标签等。构件不能独立地显示出来,必须将组件放在一定的容器中才可以显示出来。类java.awt.Component是许多构件类的父类,Component类中封装了组件通用的方法和属性,如图形的构件对象、大小、显示位置、前景色和背景色、边界、可见性等.AWT--容器容器(Container)也是一个类,实际上是Component的子类,因此容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。所有的容器都可以通过add()方法向容器中添加组件。常用容器:Window窗口,没有菜单和边界Panel面板,简单容器。Applet最常用的容器,不能有菜单条。Frame框架,可以有菜单条。Dialog对话框,可模式化或非模式化。FileDialog用于选择文件的对话框。ScrollPane滚动容器AWT--布局管理器布局管理器(LayoutManager):每个容器都有一个布局管理器,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器。8.3Java.awt.Component及其子类Component|-Button|-Canvas|-Checkbox|-Choice|-Container|-Label|-List|-Scrollbar|-TextComponent|-TextArea|-TextFieldContainer|-Panel|-ScrollPane|-Window|-Dialog|-FileDialog|-Frame8.4AWT组件--Button构造方法:Button():ConstructsaButtonwithnolabel.Button(Stringlabel):ConstructsaButtonwiththespecifiedlabel.主要方法:voidaddActionListener(ActionListenerl)StringgetLabel():Getsthelabelofthisbutton.voidsetLabel(Stringlabel):Setsthebutton'slabeltobethespecifiedstring.AWT组件--Checkbox(复选框)Checkbox()Checkbox(Stringlabel)Checkbox(Stringlabel,booleanstate)Checkbox(Stringlabel,booleanstate,CheckboxGroupgroup)Checkbox(Stringlabel,CheckboxGroupgroup,booleanstate)voidsetState(booleanstate)booleangetState()AWT组件--Choice(选项菜单)Choice()Createsanewchoicemenu.voidadd(Stringitem)voidaddItem(Stringitem)StringgetItem(intindex)intgetItemCount()StringgetSelectedItem()intgetSelectedIndex()voidselect(intpos)ChoiceColorChooser=newChoice();ColorChooser.add(GreenColor);ColorChooser.add(RedColor);ColorChooser.add(BlueColor);AWT组件--List(滚动列表)List()List(introws)List(introws,booleanmultipleMode)Listlst=newList(4,false);lst.add(Mercury);lst.add(Venus);lst.add(Earth);lst.add(JavaSoft);lst.add(Mars);lst.add(Jupiter);lst.add(Saturn);lst.add(Uranus);lst.add(Neptune);lst.add(Pluto);AWT组件--Label(文字显示)Label()Label(Stringtext)Label(Stringtext,intalignment)setLayout(newFlowLayout(FlowLayout.CENTER,10,10));add(newLabel(HiThere!));add(newLabel(AnotherLabel));AWT组件--TextField(单行文本输入)TextField()TextField(intcolumns)TextField(Stringtext)TextField(Stringtext,intcolumns)TextFieldtf1,tf2,tf3,tf4;tf1=newTextField();tf2=newTextField(,20);tf3=newTextField(Hello!);tf4=newTextField(Hello,30);8.5AWT容器容器是构件,是可以包含其它构件的构件容器的特征:有一定的范围,一般为矩形容器具有一定的位置特征可以有背景,也可以透明容器中可以包含其它基本构件容器可以包含容器AWT容器类层次结构AWT各种容器之间的关系Container|-Panel|-Window|-Dialog||-FileDialog|-FrameAWT容器--Panel(面板)Panel没有具体的图形表示,主要实现GUI构件的组合Applet类继承了Panel类Panel构造方法:Panel():使用默认的布局管理器FlowLayout创建PanelPanel(LayoutManagerlayout):使用指定的布局管理器创建PanelAWT容器--Window(窗口)是Frame和Dialog的父类AWindowobjectisatop-levelwindowwithnobordersandnomenubar.ThedefaultlayoutforawindowisBorderLayout.Awindowmusthaveeitheraframe,dialog,oranotherwindowdefinedasitsownerwhenit'sconstructed.构造函数:Window(Frameowner)Window(Windowowner)AWT容器--Frame(框架)AFrameisatop-levelwindowwithatitleandaborder.通常用于开发桌面应用程序默认的布局管理器为BorderLayout构造方法Frame()Frame(StringstrCaptionText)AWT容器--Dialog显示提示信息或提示用户输入信息的弹出式窗口与Frame的主要区别:没有菜单依赖其Parent窗口,当其Parent窗口缩小时,Dialog窗口消失;当其Parent窗口恢复时,Dialog窗口也自动恢复有模式/非模式两种工作方式构造方法:Dialog(Dialogowner,Stringtitle)Dialog(Frameowner,booleanmodal)Dialog(Dialogowner,Stringtitle,booleanmodal)8.6布局管理器布局管理器的作用:确定构件的位置和大小,并在容器内布置构件实现显示界面与平台无关布局管理器与容器密切相关:每个容器都有一个布局管理器一个布局管理器可以为多个容器进行构件布局为什么引入布局管理器?容器把构件布局的工作授权/委托给布局管理器,使得容器可以更加灵活地选择不同的布局管理器,从而实现不同的构件布局减轻容器本身实现的复杂性类比:容器布局管理器基本构件股东经纪人股票—————————————*认识“委托/授权“的思想构件的首选尺寸构件有三种尺寸:PreferredSize:最佳MaximumSize:最大MinimumSize:最小————————————*很多布局管理器忽略构件的首选尺寸强制容器布置构件构件的大小一般不会自动调整,为了调整到最佳尺寸,一般需要强制容器重新布置构件容器Container内重新布置构件com方法:设置构件为无效,即com.invalidate();调用容器的validate方法,即Container.validate();Java的标准布局管理器FlowLayoutBorderLayoutCardLayoutGridLayoutGridBagLayoutnull标准布局管理器--FlowLayout从左到右,从上到下的方式依次排列构件FlowLayout(对齐方式,水平间距,垂直间距)例如:newFlowLayout(2,10,5):表示:右对齐;水平间距10;垂直间距5setLayout(newFlowLayout(2,10,5));add(newButton(Func1));add(newButton(Func2));add(newButton(Func3));add(newButton(Func4));add(newButton(Func5));add(newButton(Func6));add(newButton(Func7));标准布局管理器--BorderLayout将容器分为5个区域(上北下南左西右东和中央)。BorderLayout(水平间距,垂直间距)举例:newBorderLayout(10,5)表示:水平间距10;垂直间距5。setLayout(newBorderLayout(10,5));add(North,newButton(功能1));add(South,newButton(功能2));add(East,newButton(功能3));add(West,newButton(功能4));add(Center,newButton(功能5));标准布局管理器--CardLayout
本文标题:AWT-组件
链接地址:https://www.777doc.com/doc-4795797 .html