java awt编程.ppt

上传人:asd****56 文档编号:87455813 上传时间:2023-04-16 格式:PPT 页数:44 大小:315.50KB
返回 下载 相关 举报
java awt编程.ppt_第1页
第1页 / 共44页
java awt编程.ppt_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《java awt编程.ppt》由会员分享,可在线阅读,更多相关《java awt编程.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第十章第十章 图形用户界面图形用户界面AWTAWT10.1AWT简介简介1.组件组件2.容器容器3.布局管理器布局管理器10.2AWT事件处理模型事件处理模型1.事件监听器事件监听器2.事件适配器事件适配器10.3AWT举例举例10.1 10.1 AWT简介简介AWT(Abstract Window Toolkit):AWT(Abstract Window Toolkit):是是JavaJava程序提供的建立图形用户界面(程序提供的建立图形用户界面(Graphics Graphics User Interface,User Interface,简称简称GUIGUI)的工具集,通的工具集,通过过

2、GUIGUI可以画线、矩形、圆形等基本图形,可以画线、矩形、圆形等基本图形,并且能创建按钮、标签、列表框等与用户并且能创建按钮、标签、列表框等与用户进行交互的组件,使用户方便的建立自己进行交互的组件,使用户方便的建立自己的图形用户界面的图形用户界面。AWTAWT主要包括主要包括组件、容组件、容器、布局管理器、事件处理模型器、布局管理器、事件处理模型、图形图、图形图像工具和数据传送类等组成像工具和数据传送类等组成。10.1 10.1 AWT简介简介AWTAWT的组件是重量级的的组件是重量级的。AWTAWT包包java.awtjava.awt.accessibilityjava.awt.color

3、java.awt.datatransferjava.awt.dndjava.awt.eventjava.awt.imjava.awt.imagejava.awt.peerjava.awt.printjava.awt.fontjava.awt.geom10.1 10.1 AWT简介简介AWTAWT包包主要类的层次关系主要类的层次关系BorderLayoutAWTEventFlowLayoutComponentObjectMenuComponentFontCardLayoutGridLayoutGridBagLayoutToolkitGraphics10.1 10.1 AWT简介简介AWTAWT包

4、包主要类的层次关系主要类的层次关系AppletPanelContainerComponentCanvasWindowFrameButtonChoiceScrollPaneTextComponentTextFieldTextAreaDialogCheckboxLabelScrollbarList10.1 10.1 AWT简介简介1.组件组件Component,MenuComponentComponent类方法:类方法:getComponentAt(intx,inty),getFont(),getForeground(),getName(),getSize(),repaint(),paint(Gr

5、aphicsg),update(),setVisible(booleanb),setSize(Dimensiond),setName(Stringname)10.1 10.1 AWT简介简介1 组件组件CanvasTextAreaLabelScrollBarCheckBoxListTextFieldButtonChoice10.1 10.1 AWT简介简介1 组件组件NetscapeCommunicatorMenuMenubarButtonLabelText field10.1 10.1 AWT简介简介1 组件组件基本组件基本组件按钮按钮Button:Button(),(),Button(St

6、ringlabel)标签标签Label:文本字符串,仅用于显示,所以不生成动作事文本字符串,仅用于显示,所以不生成动作事件。件。Label(),Label(String),setText(),getText()复选框和单选按钮复选框和单选按钮Checkbox:Checkbox(Stringlabel),),Checkbox(Stringlabel,booleanstate),),Checkbox(Stringlabel,booleanstate,CheckboxGroup)下拉式列表下拉式列表Choice和列表和列表List:Choice是文本字符串的是文本字符串的弹出式菜单,弹出式菜单,Ch

7、oice(),(),add();列表列表List可允许多选,可允许多选,支持滚动条,支持滚动条,List(int,boolean),add()单行文本组件单行文本组件TextField和和多行文本组件多行文本组件TextArea:(setText(),getText(),SetEditable()10.1 10.1 AWT简介简介1 组件组件基本组件基本组件TextField:setEchoChar()TextArea:append(),insert(),replace()画布画布canvas:绘图功能,绘图功能,paint(),requestFocus()滚动条滚动条ScrollBar:Sc

8、rollbar(),Scrollbar(intorientation)组件外观颜色和字体:组件外观颜色和字体:Java.awt.Color:black,blue,cyan,darkGray,gray,green,lightGray,magenta,orange,pink,red,white,Yellow;Color(intr,intg,intb)Java.awt.Font:setFont()菜单组件:菜单组件:MenuBar,Menu,MenuItem,CheckboxMenuItem,MenuShortcut10.1 10.1 AWT简介简介2 2 容器容器容器容器:是一种可以含有其他组件的

9、组件,是一种可以含有其他组件的组件,AWT中的容器都是中的容器都是从从Container抽象类派生而来的抽象类派生而来的.类型:类型:Window,panel,ScrollPane常用:常用:Panel,Frame,AppletPanel和和Applet:AppletApplet从从PanelPanel类继承而来,而类继承而来,而 Panel Panel 从从ContainerContainer类继承而来,它不创建自己的窗口,因为它常用类继承而来,它不创建自己的窗口,因为它常用于将组件编组放入其它容器于将组件编组放入其它容器(Frame,Applet)Frame,Applet)中中,它缺省的布

10、它缺省的布局管理器为局管理器为FlowLayoutFlowLayout。Frame:是一个功能齐全的、顶层的、可重定义尺寸的、带是一个功能齐全的、顶层的、可重定义尺寸的、带有菜单条的窗口。可以指定标题、图标和光标。它缺省的布有菜单条的窗口。可以指定标题、图标和光标。它缺省的布局管理器为局管理器为BorderLayoutBorderLayout,且生成与窗口一样的事件:且生成与窗口一样的事件:WindowOpenedWindowOpened,WindowClosingWindowClosing,WindowClosedWindowClosed,Windows:Windows:不常使用,不常使用,

11、它是一个顶层的窗口,不带边界和菜它是一个顶层的窗口,不带边界和菜单条。单条。10.1 10.1 AWT简介简介3 3 布局管理布局管理常用布局管理器常用布局管理器FlowLayout:组件从左到右、从上到下,一个挨一组件从左到右、从上到下,一个挨一个地放在容器中。个地放在容器中。Panel和和Applet的默认容器。的默认容器。GridLayout:网格布局管理器。每个网格单元放置网格布局管理器。每个网格单元放置一个组件或容器。一个组件或容器。BorderLayout:按照东、西、南、北、中安排组件。按照东、西、南、北、中安排组件。是是Window、Frame、Dialog的默认容器。的默认容

12、器。CardLayout:卡式布局管理器。卡式布局管理器。GridBagLayout:复杂的网格布局管理器。复杂的网格布局管理器。南南中中北北西西东东10.1 10.1 AWT简介简介3 3 布局管理布局管理BorderLayout类类功能功能:分成五个区分成五个区创建:创建:setLayout(newBorderLayout();将其他构件加入将其他构件加入add(“East”,newButton(“东东”);add(“South”,newButton(“南南”);add(“West”,newButton(“西西”);add(“North”,newButton(“北北”);add(“Cent

13、er”,newButton(“中中”);10.1 10.1 AWT简介简介3 3 布局管理布局管理FlowLayout类类FlowLayout();FlowLayout(FlowLayout.LEFT);(5像素像素)FlowLayout(FlowLayout.RIGHT,10,20);GridLayout类类GridLayoutmylayout=newGridLayout(3,3)setLayout();10.1 10.1 AWT简介简介3 3 布局管理布局管理GridBagLayout类和类和GridBagConstraints类类功能功能:借助于借助于GridBagConstraints

14、类类,实现更灵活的外观实现更灵活的外观管理管理每个构件后都跟随一个每个构件后都跟随一个GridBagLayout对象实体对象实体,来决定来决定构件的外观构件的外观.创建创建GridBagLayoutmyLayout=newGridBagLayout();GridBagConstraints类的约束条件类的约束条件gridwidth,gridheight,gridx,gridy,weightx,weighty,ipadx,ipady,insets,fill,anchor设置设置(P287)button1button2button3button8button5button6button7butto

15、n4button910.1 10.1 AWT简介简介3 3 布局管理布局管理例例:(GridBagApplet.html)10.1 10.1 AWT简介简介3 3 布局管理布局管理publicvoidinit()GridBagLayoutlayout=newGridBagLayout();setLayout(layout);GridBagConstraintsGBC=newGridBagConstraints();Buttonbutton1=newButton(button1);Buttonbutton2=newButton(button2);Buttonbutton3=newButton(b

16、utton3);Buttonbutton4=newButton(button4);Buttonbutton5=newButton(button5);Buttonbutton6=newButton(button6);Buttonbutton7=newButton(button7);Buttonbutton8=newButton(button8);Buttonbutton9=newButton(button9);10.1 10.1 AWT简介简介3 3 布局管理布局管理GBC.fill=GridBagConstraints.BOTH;(按钮可以在水平和垂直两个方向扩展按钮可以在水平和垂直两个方向扩

17、展)layout.setConstraints(button1,GBC);add(button1);GBC.gridwidth=GridBagConstraints.RELATIVE;(BOTH依然起作用依然起作用,紧挨着最后一个按钮紧挨着最后一个按钮,)layout.setConstraints(button2,GBC);add(button2);GBC.gridwidth=GridBagConstraints.REMAINDER;(填充剩余部分填充剩余部分)layout.setConstraints(button3,GBC);add(button3);But1But2But3But1But

18、2But3But410.1 10.1 AWT简介简介3 3 布局管理布局管理GBC.gridwidth=GridBagConstraints.REMAINDER;(表示该按钮独占一行表示该按钮独占一行)layout.setConstraints(button4,GBC);add(button4);But1But2But3But4But6But510.1 10.1 AWT简介简介3 3 布局管理布局管理GBC.gridwidth=2;(表示该按钮占两个单元表示该按钮占两个单元)layout.setConstraints(button5,GBC);add(button5);GBC.gridwidt

19、h=GridBagConstraints.REMAINDER;layout.setConstraints(button6,GBC);add(button6);But1But2But3But4But6But5But710.1 10.1 AWT简介简介3 3 布局管理布局管理GBC.gridwidth=1;GBC.gridheight=2;(高度为两个单元高度为两个单元)layout.setConstraints(button7,GBC);add(button7);But1But2But3But4But6But5But7But8But910.1 10.1 AWT简介简介3 3 布局管理布局管理GB

20、C.gridwidth=GridBagConstraints.REMAINDER;GBC.gridheight=1;layout.setConstraints(button8,GBC);add(button8);layout.setConstraints(button9,GBC);add(button9);10.1 10.1 AWT简介简介例例10.1 10.1 AWT简介简介例例importjava.awt.*;publicclassTestFramef;Buttonb;TextFieldtf;publicvoidcreat()f=newFrame(testing);b=new Button

21、(press);f.add(b,North);10.1 10.1 AWT简介简介例例tf=newTextField();f.add(tf,South);f.setSize(200,200);f.setVisible(true);publicstaticvoidmain(Stringargs)Testt=newTest();t.creat();10.2 10.2 AWT事件处理模型事件处理模型Java1.1:Java1.1:基于事件的授权模型。基于事件的授权模型。事件事件事件源事件源事件处理器事件处理器任何类都能接收和管理事件,不管该类是否将任何类都能接收和管理事件,不管该类是否将Compone

22、ntComponent当作超类。当作超类。事件是通过事件监听器事件是通过事件监听器(event listeners)event listeners)来管理的来管理的.源码顶部需加入:源码顶部需加入:import java.import java.awtawt.event.*.event.*10.2 10.2 AWT事件处理模型事件处理模型事件类事件类事件类事件类(1010类)类):java.util.EventObjectjava.awt.AWTEventComponentEventItemEventTextEventContainerEventFocusEventInputEventPain

23、tEventWindowEventKeyEventMouseEventAdjustmentEventActionEvent10.2 10.2 AWT事件处理模型事件处理模型事件监听器事件监听器事件事件接口接口ActionEventActionListenerItemEventItemListenerMouseEventMouseMotionListenerMouseListenerKeyEventKeyListenerFocusEventFocusListenerAdjustmentEventAdjustmentListenerComponentEventComponentListenerWi

24、ndowEventWindowListenerContainerEventContainerListenerTextEventTextListener10.2 10.2 AWT事件处理模型事件处理模型事件监听器事件监听器10.2 10.2 AWT事件处理模型事件处理模型事件监听器例事件监听器例1每类事件对应事件每类事件对应事件监听器,监听器是接口,所以要在类中实监听器,监听器是接口,所以要在类中实现接口。现接口。importjava.awt.*;importjava.awt.event.*;publicclassTest1implementsActionListenerFramef;Butto

25、nb;TextFieldtf;publicvoidcreat()f=newFrame(testing);b=new Button(press);b.addActionListener(this);f.add(b,North);10.2 10.2 AWT事件处理模型事件处理模型事件监听器例事件监听器例1tf=newTextField();f.add(tf,South);f.setSize(200,200);f.setVisible(true);publicvoidactionPerformed(ActionEvente)tf.setText(theButtonispressed);publics

26、taticvoidmain(Stringargs)Test1t=newTest1();t.creat();10.2 10.2 AWT事件处理模型事件处理模型事件监听器例事件监听器例2importjava.awt.*;importjava.awt.event.*;publicclassTest3implementsActionListener,WindowListenerFramef;Buttonb;TextFieldtf;publicvoidcreat()f=newFrame(testing);f.setLayout(newBorderLayout();f.addWindowListener(

27、this);b=new Button(press);b.addActionListener(this);f.add(b,North);10.2 10.2 AWT事件处理模型事件处理模型事件监听器例事件监听器例2tf=newTextField();f.add(tf,South);f.setSize(200,200);f.setVisible(true);publicvoidactionPerformed(ActionEvente)tf.setText(theButtonispressed);publicstaticvoidmain(Stringargs)Test3t=newTest3();t.c

28、reat();10.2 10.2 AWT事件处理模型事件处理模型事件监听器例事件监听器例2publicvoidwindowClosing(WindowEvente)System.exit(0);publicvoidwindowActivated(WindowEvente);publicvoidwindowClosed(WindowEvente);publicvoidwindowDeactivated(WindowEvente);publicvoidwindowDeiconified(WindowEvente);publicvoidwindowIconified(WindowEvente);pu

29、blicvoidwindowOpened(WindowEvente);10.2 10.2 AWT事件处理模型事件处理模型事件适配事件适配器器为了简单化,为一些监听器为了简单化,为一些监听器Listener接口提供了适接口提供了适配器配器Adapter类类.ComponentAdapterContainerAdapterFocusAdapterKeyAdapterMouseAdapterMouseMotionAdapterWindowAdapter10.2 10.2 事件适配器举例事件适配器举例内部类内部类importjava.awt.*;importjava.awt.event.*;publi

30、cclassTest4implementsActionListenerFramef;Buttonb;TextFieldtf;publicvoidcreat()f=newFrame(testing);f.setLayout(newBorderLayout();f.addWindowListener(newWinClosing();b=new Button(press);b.addActionListener(this);f.add(b,North);10.2 10.2 事件适配器举例事件适配器举例内部类内部类tf=newTextField();f.add(tf,South);f.setSize(

31、200,200);f.setVisible(true);publicstaticvoidmain(Stringargs)Test4t=newTest4();t.creat();publicvoidactionPerformed(ActionEvente)tf.setText(theButtonispressed);10.2 10.2 事件适配器举例事件适配器举例内部类内部类classWinClosingextendsWindowAdapterpublicvoidwindowClosing(WindowEvente)System.exit(0);10.3 AWT举例举例菜单菜单importjav

32、a.awt.*;publicclassTestMenuprivateFramef;privateMenuBarmb;privateMenum1,m2,mhelp;privateMenuItemmi11,mi12,mi13,mi21,mih;CheckboxMenuItemmi22;publicTestMenu()f=newFrame(“TestFrame”);mb=newMenuBar();m1=newMenu(“文件文件”););m2=newMenu(“编辑编辑”););文件文件帮助帮助新建新建打开打开保存保存编辑编辑工具工具查找查找帮助文件帮助文件查找查找工具工具10.3 AWT举例举例菜

33、单菜单mhelp=newMenu(“帮助帮助”););mi11=newMenuItem(“新建新建”);mi12=newMenuItem(“打开打开”);mi13=newMenuItem(“保存保存”);mi21=newMenuItem(“查找查找”);mi22=newCheckboxMenuItem(“工具工具”);mih=newMenuItem(“帮助文件帮助文件”);m1.add(mi11);m1.add(mi12);m1.add(mi13);10.3 AWT举例举例菜单菜单m1.addSeparator();m2.add(mi21);m2.add(mi22);m1.add(m2);f.

34、setMenuBar(mb);mb.add(m1);mhelp.add(mih);mb.setHelpMenu(mhelp);f.setSize(200,200);f.setVisible(true);publicstaticvoidmain(Stringargs)TestMenutm=newTestMenu();本章小结本章小结概念:组件、容器、布局管理器、事件、事件监听概念:组件、容器、布局管理器、事件、事件监听器、事件适配器器、事件适配器组件、容器、布局管理器、事件、事件监听器、事组件、容器、布局管理器、事件、事件监听器、事件适配器分别有哪些?件适配器分别有哪些?事件处理模型事件处理模型事件监听器事件监听器事件适配器事件适配器内部类内部类AWT编程编程习题习题1.什么是组件、容器、布局管理器?分别有哪些什么是组件、容器、布局管理器?分别有哪些?2.什么是事件、事件监听器、事件适配器?分别有什么是事件、事件监听器、事件适配器?分别有哪些?哪些?3.简述简述AWT的事件处理过程。的事件处理过程。4.用用AWT完成加法运算。完成加法运算。习题习题5.将文本行的输入加入到文本域中将文本行的输入加入到文本域中追加追加

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁