图形化用户界面和Applet.docx

上传人:b****8 文档编号:8962141 上传时间:2023-05-16 格式:DOCX 页数:22 大小:191.55KB
下载 相关 举报
图形化用户界面和Applet.docx_第1页
第1页 / 共22页
图形化用户界面和Applet.docx_第2页
第2页 / 共22页
图形化用户界面和Applet.docx_第3页
第3页 / 共22页
图形化用户界面和Applet.docx_第4页
第4页 / 共22页
图形化用户界面和Applet.docx_第5页
第5页 / 共22页
图形化用户界面和Applet.docx_第6页
第6页 / 共22页
图形化用户界面和Applet.docx_第7页
第7页 / 共22页
图形化用户界面和Applet.docx_第8页
第8页 / 共22页
图形化用户界面和Applet.docx_第9页
第9页 / 共22页
图形化用户界面和Applet.docx_第10页
第10页 / 共22页
图形化用户界面和Applet.docx_第11页
第11页 / 共22页
图形化用户界面和Applet.docx_第12页
第12页 / 共22页
图形化用户界面和Applet.docx_第13页
第13页 / 共22页
图形化用户界面和Applet.docx_第14页
第14页 / 共22页
图形化用户界面和Applet.docx_第15页
第15页 / 共22页
图形化用户界面和Applet.docx_第16页
第16页 / 共22页
图形化用户界面和Applet.docx_第17页
第17页 / 共22页
图形化用户界面和Applet.docx_第18页
第18页 / 共22页
图形化用户界面和Applet.docx_第19页
第19页 / 共22页
图形化用户界面和Applet.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

图形化用户界面和Applet.docx

《图形化用户界面和Applet.docx》由会员分享,可在线阅读,更多相关《图形化用户界面和Applet.docx(22页珍藏版)》请在冰点文库上搜索。

图形化用户界面和Applet.docx

图形化用户界面和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文件,使用标签将字节码文件嵌入其中,用浏览器打开html文件或者用appletviewer小程序浏览器。

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标准组件图示:

 

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.TextListener(接口)

voidtextValueChanged(TextEvente)

3、单复选框和列表

㈠复选框(Checkbox)

创建复选框:

publicCheckbox()

publicCheckbox(Strings)

publicTextField(Strings,booleanstate)

常用方法

publicbooleangetState()

publicvoidsetState(bo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2