Java语言程序设计讲义第九篇.doc

上传人:scccc 文档编号:12397044 上传时间:2021-12-03 格式:DOC 页数:23 大小:47.50KB
返回 下载 相关 举报
Java语言程序设计讲义第九篇.doc_第1页
第1页 / 共23页
Java语言程序设计讲义第九篇.doc_第2页
第2页 / 共23页
Java语言程序设计讲义第九篇.doc_第3页
第3页 / 共23页
Java语言程序设计讲义第九篇.doc_第4页
第4页 / 共23页
Java语言程序设计讲义第九篇.doc_第5页
第5页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java语言程序设计讲义第九篇.doc》由会员分享,可在线阅读,更多相关《Java语言程序设计讲义第九篇.doc(23页珍藏版)》请在三一文库上搜索。

1、第九章 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) Application是能进行各种

2、操作的程序,包括读/写文件操作。但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生命周期中,只执行一次方法init()。(2)

3、 启动 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 class HelloWorl

4、dApp <变量定义> <方法定义> 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 Wo

5、rld! ",20,20); 嵌入HTML,文件名为Applet_Example.html。 <HTML><HEAD> <TITLE> an Applet Example </TITLE> </HEAD> <BODY> <APPLET CODE="HelloWorldApplet.class" WIDTH=200 HEIGHT=40 CODE BASE=JavaApplet> <PARAMETER name=parametername value=paraValue>

6、. </APPLET> </BODY> </HTML>9.3 Java Applet与多媒体1声音l Java从网络上获取声音文件并播放声音的编程方法有两类:ü 利用Java语言提供的play(URL)及play(URL,String),直接播放网络上的声音文件。ü 利用java.applet中的类及接口AudioClip,通过getAudioClip(URL)或getAudioClip(URL,String)先从网络上获取声音文件,并生成AudioClip 类型的对象,然后对该对象进行操作。l Applet提供方法用来获取声音文件的数据

7、:AudioClip getAudioClip(URL url);AudioClip getAudioClip(URL url,String name);例如: AudioClip sound=getAudioClip(getCodeBase(),"music.au");l 在类Applet中,getDocumentBase()返回包含此Applet主页的URL地址。getCodeBase()返回包含此Applet本身的URL地址。l 当Applet获取声音文件的数据后,可通过AudioClip所定义的方法来控制声音的播放:void play(),播放声音;void sto

8、p(),停止播放;void loop(),循环播放;ü 直接播放网络上的声音文件 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);/ sou

9、nd = getAudioClip(new URL(Soundurl) ,声音文件名); catch(Exception e) System.out.println("Can't open the URL "); ü 以上都是将生成的URL对象“new URL(Soundurl)”直接作为play()或getAudioClip()的参数ü 也可先用“new URL(Soundurl)”获取一个URL对象,再传给play()或getAudioClip()。URL Soundurl =null;try Soundurl =new URL("

10、结点URL ");catch(Exception e) System.out.println("Can't open the URL ");play(Soundurl);例9.2import java.applet.*;import java.awt.*;import .*;public class sound1 extends Applet public void paint(Graphics g) String Soundurl= " try play(new URL(Soundurl); catch (Exception e) 例9.3im

11、port java.applet.*;import java.awt.*;import .*;public class sound2 extends Applet public void paint(Graphics g) String Soundurl = "/" try play(new URL(Soundurl),"music.au"); catch(Exception e) 例9.4import java.applet.*;import java.awt.*;import .*;public class sound3 extends Applet

12、 AudioClip sound; public void init() String Soundurl = "music.au" try sound = getAudioClip(new URL(Soundurl); catch(Exception e) public void paint(Graphics g) sound.loop(); 例9.5import java.applet.*;import java.awt.*;import .*;public class sound4 extends Applet AudioClip sound; URL auur; pu

13、blic void init() try auur=new URL(""); catch (MalformedURLException e) System.out.println("Can't open the URL "); sound = getAudioClip(auur," music.au "); public void paint(Graphics g) sound.loop();2 AWT绘图l 类Component在包java.awt中定义,通过它可以绘制或填充各种几何图形,输出文字或显示图象,还可设置或获得当

14、前字体,绘图区域,绘图方式等。l 类Component定义了三个支持绘图的方法:ü void repaint();ü void update(Graphics g);ü void paint(Graphics g);l 除Component外,java.awt还提供了另一些支持绘图的类:ü 类Dimension(封装一个组件的宽度和高度)ü 类Font FontMetrics(设置字体和字体尺寸)ü 类Image(封装一个图象)ü 类Canvas(绘图常常是画到画布上)ü 类Graphics(绘制基本图形,包括直线

15、,矩行,椭圆弧,圆弧,和多边形)。其方法原型如下: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(Color.c); /设置图形颜色

16、( 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 void paint (Graph

17、ics 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 文字l 设置字体和颜色可方法setFont(),setBackground(), setForeground()来实现。l 也

18、可以通过类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 l 通过类Graphics和组件的方法getFont(),setFont()获取或设置当前使用的字体。l 通过getToolkit(),getFontList()得到系统所支

19、持的各种字体。例: Font f; f=new Font(Font.Courier,Font.plain,18); Graphics g.setFont(f); g.drawString("FONT",0,0);(2)FontMetricsFontMetrics表示字体的大小,通过它可以得到字体在特定屏幕上的尺寸。4 图象l 在包java.awt,java.awt.image及java.applet中都有对图象的支持。l 目前Java所处理的图象格式包括GIF和JPEG两种。(1) 图象装入l Applet:ü Image getImage(URL url);&#

20、252; Image getImage(URL url,String name);l 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)ü

21、boolean drawImage(Image img,int x,int y,Color bgcolor, ImageObserver observer)ü boolean 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.*;i

22、mport java.awt.*;public class imageTest1 extends Applet Image image; public void init() image=getImage(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 Ima

23、ge image; public void init() String url = "imagetest.gif" try image = getImage(new URL(url); catch(Exception e) public void 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; p

24、ublic void init() try imgur=new URL("imagetest.gif") catch (MalformedURLException e) System.out.println("Can't open the URL "); image=getImage(imgur); public void paint(Graphics g) g.drawImage(image, 0, 0,this); (3) 图象跟踪l MediaTrackerü Media Tracker中定义了几个标志表示图象的载入情况。(ABO

25、RTED,COMPLETE,ERRORED,LOADING) MediaTracker(Component comp); void addImage(Image img,int id); void addImage(Image img,int id,int w,int h);ü 对下载情况的跟踪可通过checkID(),checkAll()方法。l ImagObserverü 监视图象的载入情况,它是一个接口,定义了一些常量标志,如ABORT,ERROR,ALLBITS等,用以判断图象的载入情况。ü 它定义的方法只有imageUpdate(),其接口为: boolean imageUpdate(Image img,int infoflags,int x, int y,int width,int height);23 / 23文档可自由编辑打印

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1