1、Java语言程序设计讲义第九章第九章 Java Applet主要内容:Java Applet和Java Application的区别及Java Applet的应用9.1 Java Applet和Java Application(1) Application是独立运行的,Applet是嵌入到Web页面上的,必须在支持Java的浏览器中运行,例如,Netscape Navigator,Microsoft IE,Sun HotJava等。(2) Application必定含有一个,并且只有一个方法main()。Applet无方法main(),并从java.applet.Applet继承。(3) Ap
2、plication是能进行各种操作的程序,包括读/写文件操作。但Applet对站点的磁盘文件既不能进行读操作,也不能进行写操作。9.2 Java Applet的生命周期1Java Applet从建立到执行可分为四步:(1) 用Java语言编写一个Applet源程序。(2) 把Applet源程序编译成字节码。(3) 将字节码嵌入Web页面。即写一个含Applet的HTML文件。(4) 用支持Java的浏览器运行、浏览。2Applet的生命周期即,Java Applet的执行过程,它涉及的基本方法如下:(1)初始化 init() 为Applet运行建立初始化环境,在整个Applet生命周期中,只执
3、行一次方法init()。(2) 启动 start() Applet被初始化后,系统会自动调用方法start()。当进入或返回Applet所在的Web页面时,均需多次执行方法start()。(3) 停止 stop() 当浏览器离开Applet所在的Web页面转到其它页面时,Applet被停止。(4) 删除 destory() 当浏览器结束浏览时,执行方法destory(),释放Applet占用的资源。在执行方法destory()前,先执行方法stop()。(5) 绘图 paint() 将Applet自身的效果显示在Web页面上。例9.1 Java Application程序结构: public
4、class HelloWorldApp public static void main(String args) System.out.println(Hello world); Java Applet程序结构 import java.awt.* import java.applet.* public class HelloworldApplet extends Applet init() start() stop() destroy() public void paint(Graphics g) drawString(Hello World! ,20,20); 嵌入HTML,文件名为Appl
5、et_Example.html。 an Applet Example . 9.3 Java Applet与多媒体1声音 Java从网络上获取声音文件并播放声音的编程方法有两类: 利用Java语言提供的play(URL)及play(URL,String),直接播放网络上的声音文件。 利用java.applet中的类及接口AudioClip,通过getAudioClip(URL)或getAudioClip(URL,String)先从网络上获取声音文件,并生成AudioClip 类型的对象,然后对该对象进行操作。 Applet提供方法用来获取声音文件的数据:AudioClip getAudioCli
6、p(URL url);AudioClip getAudioClip(URL url,String name);例如: AudioClip sound=getAudioClip(getCodeBase(),music.au); 在类Applet中,getDocumentBase()返回包含此Applet主页的URL地址。getCodeBase()返回包含此Applet本身的URL地址。 当Applet获取声音文件的数据后,可通过AudioClip所定义的方法来控制声音的播放:void play(),播放声音;void stop(),停止播放;void loop(),循环播放; 直接播放网络上的声
7、音文件 String Soundurl = 结点URL; try play(new URL(Soundurl);/ 或 play(new URL(Soundurl),声音文件名); catch(Exception e) 利用java.applet中的类及接口AudioClip String Soundurl = 结点URL; AudioClip sound; try sound = getAudioClip(new URL(Soundurl);/ sound = getAudioClip(new URL(Soundurl) ,声音文件名); catch(Exception e) System.
8、out.println(Cant open the URL ); 以上都是将生成的URL对象“new URL(Soundurl)”直接作为play()或getAudioClip()的参数 也可先用“new URL(Soundurl)”获取一个URL对象,再传给play()或getAudioClip()。URL Soundurl =null;try Soundurl =new URL(结点URL );catch(Exception e) System.out.println(Cant open the URL );play(Soundurl);例9.2import java.applet.*;i
9、mport java.awt.*;import .*;public class sound1 extends Applet public void paint(Graphics g) String Soundurl= try play(new URL(Soundurl); catch (Exception e) 例9.3import java.applet.*;import java.awt.*;import .*;public class sound2 extends Applet public void paint(Graphics g) String Soundurl = try pla
10、y(new URL(Soundurl),music.au); catch(Exception e) 例9.4import java.applet.*;import java.awt.*;import .*;public class sound3 extends Applet AudioClip sound; public void init() String Soundurl = try sound = getAudioClip(new URL(Soundurl); catch(Exception e) public void paint(Graphics g) sound.loop(); 例
11、9.5import java.applet.*;import java.awt.*;import .*;public class sound4 extends Applet AudioClip sound; URL auur; public void init() try auur=new URL( catch (MalformedURLException e) System.out.println(Cant open the URL ); sound = getAudioClip(auur, music.au ); public void paint(Graphics g) sound.lo
12、op();2 AWT绘图 类Component在包java.awt中定义,通过它可以绘制或填充各种几何图形,输出文字或显示图象,还可设置或获得当前字体,绘图区域,绘图方式等。 类Component定义了三个支持绘图的方法: void repaint(); void update(Graphics g); void paint(Graphics g); 除Component外,java.awt还提供了另一些支持绘图的类: 类Dimension(封装一个组件的宽度和高度) 类Font FontMetrics(设置字体和字体尺寸) 类Image(封装一个图象) 类Canvas(绘图常常是画到画布上)
13、 类Graphics(绘制基本图形,包括直线,矩行,椭圆弧,圆弧,和多边形)。其方法原型如下:public void drawLine(int x1,int y1,int x2,int y2); public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle);public void drawPolygon(Polygon p); Color类(1) awt预定义的颜色,black、red、blue、gray等。(2) RBG(红绿蓝)值合成的颜色,值可取为0255。SetColor(C
14、olor.c); /设置图形颜色( java.awt.Graphics )SetBackground(Color.c);/设置背景颜色 (java.awt.Component )例如:Graphics g=new Graphics;Component k=new Component;g.setColor(color.red);k.setBackground(color.blue);例9.6 类Polygon用来设置多边形的顶点。import java.awt.*;import java.applet.*;public class DrawTest extends Applet public v
15、oid paint (Graphics g) g.drawArc(20,20,70,40,45,270); g.drawLine(100,20,200,80); Polygon p=new Polygon(); p.addPoint(300,10); p.addPoint(275,90); p.addPoint(340,40); p.addPoint(260,40); p.addPoint(325,90); g.drawPolygon(p); g.drawRect(360,20,100,80); 3 文字 设置字体和颜色可方法setFont(),setBackground(), setFore
16、ground()来实现。 也可以通过类Graphics输出文字,相应的方法有: void drawBytes(byte data,int offset,int lenth,int x,int y); void drawChars(byte data,int offset,int lenth,int x,int y); void drawString(String str,int x,int y);(1) Font 通过类Graphics和组件的方法getFont(),setFont()获取或设置当前使用的字体。 通过getToolkit(),getFontList()得到系统所支持的各种字体。
17、例: Font f; f=new Font(Font.Courier,Font.plain,18); Graphics g.setFont(f); g.drawString(FONT,0,0);(2)FontMetricsFontMetrics表示字体的大小,通过它可以得到字体在特定屏幕上的尺寸。4 图象 在包java.awt,java.awt.image及java.applet中都有对图象的支持。 目前Java所处理的图象格式包括GIF和JPEG两种。(1) 图象装入 Applet: Image getImage(URL url); Image getImage(URL url,String
18、 name); Application: Image img=getToolkit().getImage(si.jpg); Image img=Toolkit.getDefaultToolkit().getImage(si.jpg);(2)图象显示显示图象是通过类的drawImage()方法来实现的。 boolean drawImage(Image img,int x,int y,ImageObserver observer) boolean drawImage(Image img,int x,int y,Color bgcolor, ImageObserver observer) boole
19、an drawImage(Image img,int x,int y,int width,int height,ImageObserver observer) boolean drawImage(Image img,int x,int y,int width,int height,Color bgcolor,ImageObserver observer)例9.7import java.applet.*;import java.awt.*;public class imageTest1 extends Applet Image image; public void init() image=ge
20、tImage(getDocumentBase(),imagetest.gif); public void paint(Graphics g) g.drawImage(image, 0, 0,this); 例9.8import java.applet.*;import .*;import java.awt.*;public class imag1 extends Applet Image image; public void init() String url = try image = getImage(new URL(url); catch(Exception e) public void
21、paint(Graphics g) g.drawImage(image, 0, 0,this); 例9.9import java.applet.*;import .*;import java.awt.*;public class imag2 extends Applet Image image; URL imgur=null; public void init() try imgur=new URL( catch (MalformedURLException e) System.out.println(Cant open the URL ); image=getImage(imgur); pu
22、blic void paint(Graphics g) g.drawImage(image, 0, 0,this); (3) 图象跟踪 MediaTracker Media Tracker中定义了几个标志表示图象的载入情况。(ABORTED,COMPLETE,ERRORED,LOADING) MediaTracker(Component comp); void addImage(Image img,int id); void addImage(Image img,int id,int w,int h); 对下载情况的跟踪可通过checkID(),checkAll()方法。 ImagObserver 监视图象的载入情况,它是一个接口,定义了一些常量标志,如ABORT,ERROR,ALLBITS等,用以判断图象的载入情况。 它定义的方法只有imageUpdate(),其接口为: boolean imageUpdate(Image img,int infoflags,int x, int y,int width,int height);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1