图形化用户界面和Applet解析.docx
- 文档编号:9814909
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:22
- 大小:173.87KB
图形化用户界面和Applet解析.docx
《图形化用户界面和Applet解析.docx》由会员分享,可在线阅读,更多相关《图形化用户界面和Applet解析.docx(22页珍藏版)》请在冰点文库上搜索。
图形化用户界面和Applet解析
图形化用户界面和Applet
12计本2班侯亚飞1204012018
Java语言的程序有两种基本形式,一种是Application程序,另一种是Applet小程序。
Applet可以翻译为小应用程序,JavaApplet就是用Java语言编写的这样的一些小应用程序,它们可以直接嵌入到网页中,并能够产生非凡的效果。
包含Applet的网页被称为Java-powered页。
可以称其为Java支持的网页。
当用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。
由于Applet是在用户的计算机上执行的,因此它的执行速度不受网络带宽或者Modem存取速度的限制。
用户可以更好地欣赏网页上Applet产生的多媒体效果。
在JavaApplet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。
Applet还提供了名为抽象窗口工具箱(AbstractWindowToolkit,AWT)的窗口环境开发工具。
AWT利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。
目前,在网络上有非常多的Applet范例来生动地展现这些功能,读者可以去调阅相应的网页以观看它们的效果。
Applet与Application区别概述:
JavaApplication:
只有一个程序入口—main方法,通过JVM调用执行。
JavaApplet:
是嵌入到网页中由浏览器调用执行的,其中不必包含main方法。
小应用程序的书写格式:
importjava.applet.*;
publicclassMyAppletextendsApplet{}
将小应用程序源文件编译成字节码文件,编写html文件,使用
Applet小程序的继承关系:
Java.lang.Object----Java.awt.Component--Java.awt.Container--Java.awt.Panel|-Java.applet.Applet
由此可以看出Applet是一个容器,是一种面板,在其中可以放置组件,可以有布局管理器,其缺省的布局管理器是FlowLayout。
例如
importjava.applet.Applet;
importjava.awt.*;
publicclassTestextendsApplet
{
publicvoidpaint(Graphicsg)
{
g.drawOval(10,10,100,100);
}
}
--test.html文件-->
与绘图有关的类:
Graphics,浏览器的Java运行环境产生一个Graphics类的对象,并传递给方法paint()中的参数g。
可将它视为一支画笔。
Applet的相关方法
1)、init():
applet启动后第一个被执行,在此初始化
2)、start():
init()后或浏览器进入页面时被执行,放置某一功能的启动代码
3)、paint():
start()后被执行,写与输出有关的代码
4)、stop():
浏览器离开页面时执行,可以省略重写
5)、destroy():
浏览器关闭时执行,可以省略重写
6)、自定义方法:
不能自动被执行,可以由前三个方法调用.例如:
start(){mymethod()}
Html标签:
超文本标记语言(HTML)。
和:
Html文件开始和结束的标记。
和:WWW浏览器窗口标题内容的标记。
和:Html文件在浏览器窗口中显示内容的标记。
:
嵌入到Html文件中Applet程序的标记。
基本形式:
Code:
指出要加载的类名,直接写类名,则要求类与html文件在同一路径下。
Height、width:
指出applet显示区的高和宽。
Applet程序与HTML文件参数传递
属性可以使得Applet能够从页面中获取所需的参数。
方法getParameter()获取属性指定的参数。
属性的作用与应用程序中main()方法里参数Stringargs[]的作用是一样的。
一个好的小应用程序,应该提供用户能够设置外部参数的功能,以使得用户能够根据自己的需要来应用它。
方法getParameterInfo()可以得到有关属性的说明信息。
alternateHTML如果浏览器不支持Applet,就解释alternateHTML所给出的HTML代码。
否则就忽略它。
示例1:
importjava.applet.Applet;
importjava.awt.*;
publicclassExam4_3extendsApplet{
Stringstr;
intx,y,h;
Fontfnt;
publicvoidinit(){
str=getParameter(“string”);
h=Integer.parseInt(getParameter(“size”));
x=Integer.parseInt(getParameter(“x1”));
y=Integer.parseInt(getParameter(“y1”));
fnt=newFont(“TimesRoman”,Font.BOLD,h);
}
publicvoidpaint(Graphicsg){
g.setColor(Color.red);
g.setFont(fnt);
g.drawString(str,x,y);}}
”> Applet应用 Applet程序中可使用java.awt包中的Graphics类提供的各种方法,在Applet程序中输出文本、绘制多种图形和显示图片等。 Graphics类对象代表当前当前组件的绘图环境。 1、设置字体和颜色 (1)设置字体 java.awt.Font类设置文本的字体(包括字型和字号)。 构造方法: publicFont(Stringname,intstyleintsize)。 (2)设置颜色 可用java.awt.Color类设置或获取某一容器组件内的图形、文字的颜色。 Color类已包含13个颜色常量。 常用构造方法: 1、publicColor(intr,intg,intb);2、publicColor(floatr1,floatg1,floatb1)。 编程方法: 利用Color类创建出一Color类对象并设置颜色特性参数(三基色的分量);调用Graphics类中的setColor()将用户的颜色加入到系统中;再调用绘制函数输出图形、文字等。 案例: importjava.applet.*; importjava.awt.*; publicclassMyAppleextendsApplet { Buttonb1,b2;intsum; publicvoidinit() {b1=newButton("确定"); b2=newButton("取消"); add(b1);add(b2); } publicvoidstart() {sum=0; for(inti=1;i<=100;i++) {sum+=i;} } publicvoidpaint(Graphicsg) {g.setColor(Color.blue); g.drawString("程序设计方法",20,60); g.setColor(Color.red); g.drawString("sum="+sum,20,100);}} 2、输出文本 (1)绘制字符串 publicvoiddrawString(Strings,intx,inty) (2)绘制字符 publicvoiddrawString(charc[],intoffset,intnumberintx,inty) (3)绘制字节 publicvoiddrawString(byteb[],intoffset,intnumberintx,inty) 3、绘制几何图形 voiddrawLine(intx1,inty1,intx2,inty2)) //画线 voiddrawArc(intx,inty,intwidth,intheight,intstartAngle,intarcAngle) //画弧 voiddrawOval(intx,inty,intwidth,intheight)//画椭圆 voiddrawRect(intx,inty,intwidth,intheight) //画矩形 voiddrawPolygon(intxPoints[],intyPoints[],intPoints) //画多边形 voiddrawRoundRect() //画圆角矩形 voidfill3DRect() //画3D矩形 简单绘图(举例) importjava.applet.*; importjava.awt.*; publicclassMyAppleextendsApplet {publicvoidpaint(Graphicsg) {intr,gr,b,h=300,w=400; intx,y,x1,y1; for(inti=0;i<100;i++) {r=(int)(Math.random()*255); gr=(int)(Math.random()*255); b=(int)(Math.random()*255); g.setColor(newColor(r,gr,b)); x=(int)(Math.random()*w); y=(int)(Math.random()*h); x1=(int)(Math.random()*10+5); y1=x1; g.fillOval(x,y,x1,y1);}}} 4、显示图像 (1)定义图像对象 java.awt包java.awt.Image类,可以定义图像对象。 如: Imagepic1,pic2; (2)加载图像(定义获取图像对象) java.awt包java.awt.Image类直接调用: getImage(URLurl,Stringname)。 url: 给出图片文件基本位置的绝对URL路径。 name: 图片文件名称,它相对于url参数的图片位置。 例如: magemyImage; myImage=getImage(getDocumentBase(),“哈哈.jpg”); (3)显示图像的操作 drawImage(Imageimg,intx,inty,ImageObserverobserver) 如: drawImage(myImage,10,20,this); 5、动画 在图片演示的程序中,连续使用如下4中方法: 创建Image类的对象数组 使用drawImage()方法绘图 使用Thread.sleep()方法休眠当前线程 使用repaint()方法重绘绘图区 6、音频播放 编程要点: 先加载声音文件,再播放它。 编程方法: (1)在Applet程序中直接调用play()函数。 play(getDocumentBase(),mySound.au”), (2)使用AudioClip接口提供的相关API来实现音频播放、停止和循环播放,AudioClip接口中定义了3个方法: 1)play()方法该方法将从头开始重新播放指定的音频剪辑。 2)stop()方法该方法将停止当前正在播放的音频剪辑。 3)loop()方法该方法将循环播放指定的音频剪辑。 Applet类中提供了多个播放音频资源的方法,它们都可以获取AudioClip接口的实现,并调用该接口中定义的方法控制音频的播放与停止。 用户图形界面 用户图形界面使用图形方式,借助于窗口中的菜单、按钮等界面元素和鼠标操作,实现用户计算机系统的交互作用。 用户也通过相界面向计算机系统发布命令、控制操作,系统的运行结果也可以以图形界面方式显示给用户。 图形用户界面生动形象、操作方便,深受广大用户的欢迎。 一、Java的GUI概述 1、图形用户界面GUI(GraphicsUserInterface),就是应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其他各种界面元素。 在Java里有两个包为GUI设计提供了丰富的功能: awt(abstractwindowstoolkit)包和Swing包。 awt是java的早期版本,组件种类有限,只提供基本的GUI设计工具。 Swing包是SUN公司对早期版本的改进版本,它不仅包括AWT中所有部件,并且提供了更加丰富的部件和功能,它足以完全实现GUI设计所需的一切功能。 创建窗体的步骤: 1)创建一个窗体对象(Framefrm=newFrame()) 2)设置窗体的大小(frm.setSize(400,400)) 3)显示窗体(frm.setVisible()) 例: 在窗体中加入一个按钮 importjava.awt.*;//导入awt工具包 publicclassAWTFrame//类名是AWTFrame { publicstaticvoidmain(String[]args)//main方法 { Framefrm=newFrame();//声明并实例化了一个Frame对象 frm.setSize(400,300);//把窗体对象的宽度设为400,高度设为300 frm.setLayout(null);//设置窗体布局为空,必须要有这个语句 Buttonbtn=newButton("一个按钮");//创建一个Button对象,按钮文字是“一个按钮” btn.setLocation(100,100);//设置按钮的位置,左上角坐标是(100,100) btn.setSize(80,20);//设置按钮的大小,宽为80,高为20 frm.add(btn);//把这个按钮加到frm窗体中 //frm.remove(btn); frm.setVisible(true);//显示窗体 } } 二、GUI组件分类 在AWT的概念中,窗口系统中所显示的各种对象都统称为“GUI组件”(Component)。 组件有基本组件和容器组件之分。 1)、基本组件是不可再分割的组件,基本组件各自都有它们特定的功能。 基本组件是构成图形用户界面的基本元素。 2)、容器组件是用来包含其他组件的,故称之为容器(container)。 用户可以把各种组件放入到容器中,也可以把容器放到另一个容器中,从而形成具有层次的组件结构。 3)、AWT提供了的容器类有: Frame类、Dia1og类和Panel类。 除了AWT提供的容器外,Applet类也是一个容器,它是Panel类的一个子类。 1、AWT标准组件图示: Obiect Event Graphics Component CheckboxGroup TextComponent Container Button TextField Checkbox Window panel Applet Label List Choice TextArea Dialog Frame FileDialog Scrollbar Canvas Color Font FlowLayout 2、AWT中主要类及其关系: 3、AWT组件: java.awt包 4、基本组件: 5、Frame类常用方法: setSize(): 设置窗口大小。 setLocation(): 设置窗口位置。 setResizable(): 设置窗口大小是否可调整。 setTitle(): 设置窗口标题。 setBackground: 设置背景颜色。 三、事件与事件处理 1、Java事件模型—基本概念 事件源: 发生事件的组件。 如: 按钮、输入文本框、菜单项、窗口。 事件: 用户对组件的一个操作,称之为一个事件。 如: 单击按钮、输入文本、选择菜单、点击窗口关闭按钮。 事件监听器: 由实现了事件监听器接口的类创建的对象,负责接收、解释并处理事件的对象。 事件监听器接口: 规定了处理某种事件时必须实现哪些方法。 2、事件处理的包 java.awt.event包,它提供AWT事件处理所需的类和接口。 1)、事件类 2)、事件处理的具体过程 事件处理过程: ①针对某事件(XXXEvent)创建事件监听器类,实现相应的事件监听器接口(XXXListener) ②可以不单独定义事件监听器类,而在当前类中实现该接口。 当前对象就可以做为事件监听器。 ③事件源注册监听器对象(addXXXListener()) 一个事件源可能会产生多种事件,每一种事件处理都需要注册监听器,因此一个事件源可能会注册多个监听器。 事件监听器可以实现多个事件监听器接口,此时可监听处理多类事件。 四、事件适配器 Java语言为一些监听接口提供了适配器(Adapeter)类,事件适配器类是抽象类,可以通过继承事件所对应的Adapter类,重写需要实现的方法,无关方法不用实现,原因是监听器适配器类是对事件监听器接口的简单实现(方法体为空)。 JDK中提供事件适配器方式来实现事件编程。 1、按钮和标签 1)按钮 构造方法: Button();Button(Stringlabel); 常用方法: publicvoidsetLabel(Strings);publicStringgetLabel(); publicvoidaddActionListener(ActionListenera) 事件响应: java.awt.event.ActionListener(接口) voidactionPerformed(ActionEvente) 2)Label类 Label类的构造方法 Label(): 建立一个空的Label组件。 Label(Stringtext): 建立一个标题为text的Label组件,预设标题的对齐方向为靠左对齐。 Label(Stringtext,intalignment) Label类常用的方法 publicStringgetText(): 获取当前标签的文本。 publicvoidsetAlignment(intalignment): 将当前标签的对齐方式设置为给定参数所指定的。 可能值是Label.LEFT,Label.RIGHT和Label.CENTER。 publicvoidsetText(Stringtext): 将当前标签的文本设置为指定文本。 事件响应不引发事件 2、文本框和文本区 1)、文本框(TextField) TextField对象表示可编辑的单行文本的文本组件。 TextField类的构造方法 TextField(): 建立一个空的TextField组件。 TextField(intcolumns): 建立一个空的TextField组件,并设置显示单行字数为columns。 事实上组件不一定刚好能容纳columns个字符,因为每个字符的宽度可能不一样。 TextField(Stringtext): 建立一个TextField组件,并设置上面的文字为text。 TextField(Stringtext,intcolumns): 建立一个上面文字为text的TextField组件,并设置显示字数为columns。 TextField类的方法 publicvoidsetText(Strings) publicStringgetText() 事件响应 java.awt.event.TextListener(接口) voidtextValueChanged(TextEvente) java.awt.event.ActionListener(接口) voidactionPerformed(ActionEvente) 2)、文本区(TextArea) TextArea类是用来显示多行文字的,并且允许在上面编辑,可以把它看成是多行的TextField类。 TextArea类的构造方法有下列五种: TextArea(): 建立一个空的TextArea组件,预设两个滚动条都会出现。 TextArea(introws,intcolumns): 建立一个空的TextArea组件,并指定最多可显示在屏幕上的行数和列数,列数只是一个大概的值,要看里面字符的宽度和操作系统而定。 预设两个滚动条都会出现。 TextArea(Stringtext): 建立一个空的TextArea组件,预设两个滚动条都会出现,但设置里面的初始文字为text。 如果text等于null,则会设置为空字符串。 TextArea(Stringtext,introws,intcolumns): 类似第二个构造方法,但设置里面的初始文字为text。 TextArea(Stringtext,introws,intcolumns,intscrollbars) 常用方法 publicvoidappend(Strings) publicvoidinsert(Strings,intindex) pubilcvoidreplaceRange(Strings,intstart,intend) 事件响应 java.awt.event.Text
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 化用 界面 Applet 解析
![提示](https://static.bingdoc.com/images/bang_tan.gif)