您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 第八讲 图形界面应用程序(JAVA网络编程技术)
1第八讲图形界面应用程序图形用户界面简称GUI(GraphicsUserInterface),它给用户提供了一个直观、方便、快捷的图形化操作界面。Java的抽象窗口工具集AWT(AbstractWindowToolkit)中包含了很多的类来支持GUI的设计。2本章主要内容:组件简介布局管理器绘图操作事件处理色彩、字体与打印Swing包中常用的类3AWT简介抽象窗口工具(AbstractWindowToolkit,AWT)为开发者提供了建立图形用户界面的工具集。主要功能包括:用户界面组件事件处理模型图形和图象处理工具布局管理器数据传送类4AWT简介AWT主要涉及java.awt包,java.awt包中提供了图形用户界面设计所使用的类和接口,主要包括3个概念:组件:Component容器:Container布局管理器:LayoutManager5AWT与Swing在AWT的概念中,窗口系统中所显示的各种对象都统称为“组件”(Component)。AWT中的组件直接系在本地平台的图形用户界面上,称为重量级构件。Swing构件称为轻量级构件,用JAVA编写,是第二代GUI开发工具,建立在AWT之上,用新版本的组件替代了旧版本的组件,提供了许多新的组件和相关的API。与平台无关,包含在javax.swing包中。Component类是AWT中大多数组件的父类,JComponent类是Swing中大多数组件的父类6AWT的组件有基本组件和容器组件之分。顾名思义,基本组件是不可再分割的组件,基本组件各自都有它们特定的功能。基本组件是构成图形用户界面的基本元素。下表列出了AWT中的基本组件。AWT的基本组件7基本组件中文名称功能Button按钮完成一个命令Checkbox复选框可以同时进行多个选择CheckboxGroup单选框只能在一组中选择一项Choice下拉式列表创建一个弹出式的选择菜单List列表创建一个选择列表Menu菜单创建菜单系统TextField文本框输入单行文字Label标签在标签内绘制字符Canvas画布进行绘画TextArea多行文本框输入多行文字Scrollbar滚动条在指定的范围内选择一个值、浏览窗口8容器组件是用来包含其他组件的,故称之为容器(Container)。用户可以把各种组件放入到容器中,也可以把容器放到另一个容器中(因为容器本身也是组件,它们都是Component类的子类),从而形成具有层次的组件结构。AWT用Container类来定义最基本的容器,所有可以作为容器的窗口对象都是Container类的实例或子类所生成的对象。AWT的容器组件9AWT的容器组件有两类:窗口类Window和面板类Panel。窗口有两类,一类是具有标题栏、最大化、最小化按钮的Frame,另一类是对话框Dialog。Frame一般作为图形界面最顶层的容器,然后将其他组件放进窗口中。窗口是可以独立存在的容器,Frame一般作为图形界面最顶层的容器,本章的图形界面大部分都放在窗口中。AWT的容器组件10面板类Panel必须放在其他容器中,如可放在窗口中,或可放在浏览器的窗口中。除了AWT提供的容器外,Applet类也是一个容器,它是Panel类的一个子类。AWT的容器组件11Javaawt的结构类图componentButtonCanvasContainerCheckBoxChoiceLabelListScrollbarTextComponentTextAreaPanelScrollPanelWindowTextFieldAppletFrameDialogFileDialog12组件不能独立地显示出来,必须将组件放在一定的容器中才可以显示出来。容器是一种特殊的组件,具有组件的所有性质,主要功能是容纳其他组件和容器。Container类是所有容器类的父类。容器有两类:窗口Window和面板Panel(ScrollPanel),窗口可以独立存在,面板必须放在其他容器中。所有容器都通过方法add()向容器中增加组件。13Component类是java.awt包中最核心的类,该类是构成java图形用户界面的基础,所有其它组件都是从Component类派生出来的。值得注意的是:Component类是一个抽象类,不能直接使用。在Component类中定义了AWT组件具有的一般功能。Component的容器组件14大小和位置控制一个组件的大小和位置可以通过组件提供的一些方法来指定,相应的方法包括setSize()、setLocation()等。也可以设置组件的容器布局来指定组件的大小和位置。外形控制可以通过getFont()、setFont()、setForeground()等方法设置组件的字体、颜色等。Component的一般功能15基本绘画支持方法repaint()、paint()、update()用于在屏幕上绘制组件,AWT绘图系统通过一个单独的线程控制程序何时进行组件的绘制。程序中可以使用组件的repaint()方法进行绘画,repaint()方法调用update()方法进行背景消除,接着update()方法调用paint()方法进行绘图,因此有关图形绘制的具体操作可以放在paint()方法中。组件的状态控制setEnable()、isEnable()、isVisible()等。Component的一般功能16从Component类派生出来的Container类用于表示GUI中的容器,该类具有的功能是组件管理和布局管理。在组件管理中,包含的方法有add()、remove()、getComponent()等,分别用于添加组件、删除组件和获得某个组件。Java中最常用的容器:Frame、Dialog和Panel。要设计一个图形用户界面,必须使用容器,否则界面就无法显示出来。Container类17Frame类是Window类的子类,它也是一种窗口,就要有标题属性,可以按照常用窗口一样调整大小,可以将组件和面板添加到其中。构造方法:Frame()Frame(GraphicsConfigurationgc)Frame(Stringtitle)Frame(Stringtitle,GraphicsConfigurationgc)Frame类18这几种方法生成的Frame对象默认情况下都是不可见的,初始大小为(0,0)。可以通过setVisible和setSize方法设置Frame的可见性和大小。Frame类19Frame的使用步骤创建对象Framefr=newFrame(“MyTest”);构件中的参数为窗口标题栏中显示的内容设置大小fr.setSize(500,500);//将窗口设置为指定的像素宽和高fr.pack();//自动调整窗口大小显示fr.setVisible(true);20Panel和Frame一样,都是容器,也可以将组件和其他面板添加到Panel中,与Frame不同的是,Panel对象必须被放入Window和Frame中才能可见,通常是使用add()方法将Panel添加到Window和Frame中。构造方法:Panel()//使用默认的布局管理器创建新面板。Panel(LayoutManagerlayout)//创建具有指定布局管理器的新面板。Panel类21Panel类的使用Framefrobj=newFrame(FrameExample);Panelpobj=newPanel();pobj.setBackground(Color.red);pobj.setSize(100,80);frobj.setSize(260,160);frobj.add(pobj);frobj.setVisible(true);22基本组件--按钮(Button)•按钮(Button)是相对简单的一种组件,它在屏幕上通常表现为一块有边界的矩形区域,上面有文字标记来说明该按钮的功能。•在AWT中,按钮Button类的构造方法有以下几种:Button();//生成一个没有标记的按钮Button(Stringlabel);//生成一个带标记label的按钮23基本组件--按钮(Button)setLabel(Stringlabel);//设置按钮标记getLabel();//获取按钮标记addActionListener(ActionListener1);removeActionListener(ActionListener1);//将1从按钮的监听者中去掉setActionCommand(Strings);//设置用户按下按钮时返回的信息processActionEvent(ActionEvente);//处理按钮产生的ActionEvent类型的事件processEvent(AWTEvente);//处理按钮产生的所有事件24例importjava.awt.*;publicclassComp1{publicstaticvoidmain(Stringaa[]){Buttonb1=newButton(test1);Buttonb2=newButton(test2);Framef=newFrame(test);Panelp=newPanel();p.add(b1);p.add(b2);f.add(p);f.pack();f.setVisible(true);}}25•标签(Label)是一种用来显示单行文本的组件,与我们后面将要讲到的TextField不同的是,标签所显示的文本是不能被用户修改的,只能在程序中加以改动。标签中的文本具有三种对齐方式:左对齐、居中和右对齐,用LABEL.LEFT、LABEL.CENTER、LABEL.RIGHT三个静态常量表示,在程序中可以设置其对齐方式。基本组件--标签(Label)26•该类提供的重要方法有以下几种:Label();//生成一个空标签Labe1(Stringtext);//生成一个带有指定文本的标签Label(Stringtext,intalignment);//生成一个带有指定文本和对齐方式的标签getAlignment();//获取对齐方式getText();//获取文本setAlignment(intalignment);//设置对齐方式setText(Stringtext);//设置文本基本组件--标签(Label)27在AWT中,提供了两种显示和编辑文件的组件:文本框(TextField)和多行文本框(TextArea),它们都是TextComponent类的子类。在TextComponent类中定义了一系列方法,可以设定文本框是否可以编辑、选择文本、返回文本、设定光标以及事件处理等。下面分别介绍文本框和多行文本框。基本组件--文本框和多行文本框28文本框由类(TextField),其构造方法有以下几种:基本组件--文本框TextField();//创建一个空的文本框TextField(Strinttext);//创建一个带有初始文本的文本框TextField(intColumns);//创建一个指定列数的文本框TextField(Stringtext,intcolulmns);//创建一个指定列数和带有初始文本的文本框29在TextField类中还定义了一些用于处理单行文本的特殊方法:基本组件--文本框addActionListener(ActionListenere);//将1指定为文本框的ActionEvent事件监听者removeActionListener(ActionListenere);//将1从文本框的监听者中去掉setEchoChar(charc);//设置用户输入的回应字符getText();//获取文本框所输入的内容setEditable(booleanb)//设置其显示的内容是否可被修改30多行文本框除了具有更多的功能处理大量文本以外,它同单行文本框(TextFieid)是一样的。单行
本文标题:第八讲 图形界面应用程序(JAVA网络编程技术)
链接地址:https://www.777doc.com/doc-3358869 .html