Java对多媒体的支持.doc
上传人:sy****28 上传时间:2024-09-12 格式:DOC 页数:16 大小:136KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Java对多媒体的支持.doc

Java对多媒体的支持.doc

预览

免费试读已结束,剩余 6 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Java对多媒体的支持Java语言的内置类库对多媒体技术的支持能力相当强,尤其是对文本、图形、图像、声音等媒体的处理与展示均提供了极其方便而又丰富的接口。更令人兴奋不已的是,综合运用这些媒体所编制出来的一个个Java小应用程序(Applet),使向来冷冰冰的静态的Web主页(Homepage)上居然展现出一番热热闹闹的动态的新景观,这便是著名的Java动画。在这一章里,将进入到Java多姿多彩的多媒体世界中去。1图形与文本如何利用Java的绘图方法来绘制各式各样图形以及显示各种文本字体,并配以所喜爱颜色,可以说是Java多媒体技术中的一项基本功,也是这一节将要介绍的主要内容。1.1图形的绘制Java语言的类库中提供了丰富的绘图方法(method),其中大部分对图形、文本、图像(image)的操作方法都定义在Graphics类中。我们已经知道,Graphics类又是java.awt程序包的一部分,因此,每当我们要进行图形、文本、图像的处理时,不要忘了在Java源文件的头部先写上:importjava.awt.Graphics;在这里要特别指出的是,当我们想要在屏幕上绘制图形、文本、图像时,并不需要直接使用new来产生一个Graphics类的对象实例,而在java.awt.Applet类的paint()方法(见上一章)中,我们已经得到了一个Graphics对象的引用,这是系统直接将生成好的Graphics对象通过参数形式传递给paint()方法。因此,我们只要在这个对象上进行图形、文本及图像的绘制操作,就可以在屏幕上看到所显示的结果。1.图形坐标系统为了将某一图形在屏幕上绘制出来,我们首先要碰到的问题也许就是“画在哪个位置”,为了解决这个问题就必须有一个精确的图形坐标系统来将该图形定位。与大多数其它计算机图形系统所采用的二维坐标系统一样,Java的坐标原点(0,0)在屏幕的左上角,水平向右为X轴的正方向,竖直向下为Y轴的正方向,每个坐标点的值表示屏幕上的一个象素点的位置,因此,所有坐标点的值都取整数。图4-1表示用此图形坐标系统在屏幕上绘制一个矩形。2.画线在Java的Graphics类中提供画线功能的是drawLine()方法,其调用格式如下:drawLine(intx1,inty1,intx2,inty2)该方法需要设置四个参数,其中x1,y1表示线段的一个坐标点,x2,y2表示线段的另一个坐标点。如下面这段程序画出两条线段,其显示结果如图4-2所示。图4-1图形坐标系统1:importjava.awt.Graphics;2:publicclassLinesextendsjava.applet.Applet{3:publicvoidpaint(Graphicsg){4:g.drawLine(30,30,70,70);5:g.drawLine(60,50,60,50);6:}7:}图4-2一条线段与一个点由于Graphics类不专门提供画点的方法,所以程序中第5行将线段的两个点的坐标均设为(60,50),因而就相当于在此处画了一个点。3.矩形Graphics类中提供了三种类型的矩形,它们分别是普通矩形、圆角矩形和立体矩形。而每一种矩形都提供两种不同风格的方法,一种是仅画出矩形的边框;另一种是不仅画出边框,并且还用相同的颜色将整个矩形区域填满。(1)普通矩形画普通矩形需调用drawRect()或fillRect()方法,它们的调用格式如下:drawRect(intx,inty,intwidth,intheight)//边框型风格fillRect(intx,inty,intwidth,intheight)//填充型风格其中头两个参数分别表示矩形左上角的x坐标和y坐标,后两个参数分别表示矩形的宽度和高度。如下面的paint()方法画出两个矩形,其显示结果如图4-2所示。publicvoidpaint(Graphicsg){g.drawRect(40,20,60,40);g.fillRect(120,20,60,40);}图4-3普通矩形的例子(2)圆角矩形圆角矩形,也就是矩形的四个顶角呈圆弧状,每个圆弧其实是由四分之一的椭圆弧所构成。画圆角矩形的两个方法的调用格式如下:drawRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight)fillRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight