Java程序设计电子教案第九章.ppt
《Java程序设计电子教案第九章.ppt》由会员分享,可在线阅读,更多相关《Java程序设计电子教案第九章.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9章章 java 多媒体设计多媒体设计9.1图形处理图形处理9.2图像处理图像处理9.3 2D图像图像9.4 动画处理动画处理9.5 播放声音播放声音9.1图形处理图形处理Java所有与图形有关的功能都包含在所有与图形有关的功能都包含在AWT包里。包里。AWT(Abstract Windows Toolkit)是抽象窗口工具包是抽象窗口工具包的缩写,支持窗口界面的创建、简单图形的绘制、图形化文的缩写,支持窗口界面的创建、简单图形的绘制、图形化文本本 输出和事件监听。用户可利用输出和事件监听。用户可利用AWT提供的类和方法,在提供的类和方法,在窗口上绘制各种各样的图形和窗口上绘制各种各样的图
2、形和 文本,增加界面的美观。基本文本,增加界面的美观。基本图形包括点、线、圆、矩形等,是构成复杂图形的基础。绘图形包括点、线、圆、矩形等,是构成复杂图形的基础。绘制基本图形要使用制基本图形要使用AWT中的中的Graphics类,它提供了各种基类,它提供了各种基本图形的绘制方法。本图形的绘制方法。下一页返回9.1图形处理图形处理911 直线直线public void drawLine(int x1,int y1,int x2,int y2)参数参数(x1,y1)和和(x2,y2)是所画直线的两个端点坐标。是所画直线的两个端点坐标。方法的功能是:在点方法的功能是:在点(x1,y1)和和(x2,y2
3、)之间画直线。之间画直线。在窗口上随机绘制在窗口上随机绘制10条直线。条直线。/DrawLines.java import java.applet.*;import java.awt.*;import java.lang.*;public class DrawLines extends Applet public void paint(Graphics g)上一页 下一页返回9.1图形处理图形处理int i,x1,y1,x2,y2;for(i=1;i=10;i+)x1=(int)(Math.random()*10);y1=(int)(Math.random()*200);x2=(int)(Ma
4、th.random()*380);y2=(int)(Math.random()*200);g.drawLine(x1,y1,x2,y2);上一页 下一页返回9.1图形处理图形处理根据题目的要求,我们使用一组随机数来指定直线两个端点根据题目的要求,我们使用一组随机数来指定直线两个端点的坐标,并采用循环结构实现的坐标,并采用循环结构实现10次循环。次循环。drawLine方法中方法中的的4个整型参数代表直线两个端点的坐标。个整型参数代表直线两个端点的坐标。random()是是Math类中的一个方法,该方法返回一个类中的一个方法,该方法返回一个double值,值域为值,值域为(00,10)。Math
5、类是类是java1ang包的一部分包的一部分java1ang可由编译器自动引入,所以我们不必把可由编译器自动引入,所以我们不必把Math类引入到程序中。直接调用类引入到程序中。直接调用random方法得到返回值太小,方法得到返回值太小,在实际应用中往往乘以一个整数因子,并强制类型转换在实际应用中往往乘以一个整数因子,并强制类型转换 为为一个合适的整数。如一个合适的整数。如(int)(Mathrandom()x100)的实的实际取值范围为际取值范围为0,100。在图形方式下要想准确定位,必须。在图形方式下要想准确定位,必须了解屏幕坐标系的构成。了解屏幕坐标系的构成。Java定义一个窗口工作区的左
6、上角定义一个窗口工作区的左上角为坐标原点为坐标原点(o,o),以像素点为单位,顺序向右和向下延伸。,以像素点为单位,顺序向右和向下延伸。图形的大小如超过窗口,则超出部分不会显示出来。图形的大小如超过窗口,则超出部分不会显示出来。上一页 下一页返回9.1图形处理图形处理9.1.2设置颜色设置颜色.创建创建 Color类的一个对象类的一个对象(1)public Color(int r,int g,int b)整数整数 r,g,b 分别表示红,绿,蓝的含量分别表示红,绿,蓝的含量(2)public Color(int r,int g,int b,int a);整数整数a表示表示alpha值,它们的取
7、值为值,它们的取值为 0 到到 255。(3)public Color(float r,float g,float b)单精度浮点数单精度浮点数 r,g,b分别表示红,绿,蓝的含量分别表示红,绿,蓝的含量(4)public Color(float r,float g,float b,float a)单精度浮点数单精度浮点数a表示表示alpha值,它们的取值范围是值,它们的取值范围是 0.0f到到1.0f上一页 下一页返回9.1图形处理图形处理(5)public Color(int rgb)整型参数整型参数rgb指明红(指明红(1623bits表示)表示)绿(绿(815bits表示)蓝(表示)蓝
8、(07bits表示)三色的取值。表示)三色的取值。(1)使用使用Graphics类中方法:类中方法:public void setColor(Color c)设置颜色。设置颜色。(2)使用使用Color类的以下几个方法获取颜色对象:类的以下几个方法获取颜色对象:public Color getColor();返回当前颜色对象。返回当前颜色对象。public int getRed();得到颜色对象的;得到颜色对象的red分量。分量。public int getGreen();得到颜色对象的;得到颜色对象的green值。值。public int getBlue();得到颜色对象的;得到颜色对象的b
9、lue值。值。public int getAlpha();得到颜色对象的;得到颜色对象的alpha值。值。上一页 下一页返回9.1图形处理图形处理/TestColor.Javaimport java.applet.Applet;import java.awt.Graphics;import java.awt.Font;import java.awt.Color;public class TestColor extends Applet public void paint(Graphics g)上一页 下一页返回9.1图形处理图形处理 String s=中国北京中国北京;Color c1=new
10、 Color(255,0,0);Color c2=new Color(255,0,0,128);Color c3=Color.blue;g.setColor(c1);g.drawString(红色:红色:+s,20,20);g.setColor(c2);g.drawString(红色:红色:+s,20,40);g.setColor(c3);g.drawString(蓝色:蓝色:+s,20,60);上一页 下一页返回9.1图形处理图形处理9.1.3字符数组和字节数组的显示字符数组和字节数组的显示Graphics 类的以下方法显示字符串、字符数组和字节数组:类的以下方法显示字符串、字符数组和字节数
11、组:(1)绘制字符串绘制字符串 void drawString(String string,int x,int y)坐标点坐标点(x,y)与要绘制的字符串与要绘制的字符串 string左下角相对应。左下角相对应。(2)绘制字符数组绘制字符数组void drawChars(char chars,int offset,int number,int x,int y)offset 是数组的起始下标,是数组的起始下标,number 是要绘制的元素个数。是要绘制的元素个数。(3)绘制字节数组绘制字节数组void drawBytes(byte bytes,int offset,int number,int
12、x,int y)offset 是数组的起始下标,是数组的起始下标,number 是要绘制的元素个数。是要绘制的元素个数。上一页 下一页返回9.1图形处理图形处理/DrawCharByte.javaimport java.applet.*;import java.awt.*;public class DrawCharByte extends Applet public void init()setBackground(new Color(0,128,0);public void paint(Graphics g)g.setFont(new Font(华文行楷华文行楷,Font.BOLD,40);
13、上一页 下一页返回9.1图形处理图形处理String s=中国北京中国北京;char ch=new chars.length();s.getChars(0,4,ch,0);g.setColor(Color.red);g.drawChars(ch,2,2,20,40);byte byt=65,66,67,68,69,70,71,72,73,74,75;g.setFont(new Font(Arial,Font.ITALIC,30);g.setColor(Color.red);g.drawBytes(byt,0,5,120,40);g.setColor(Color.white);g.drawByt
14、es(byt,0,5,122,38);上一页 下一页返回9.1图形处理图形处理9.1.4 绘制绘制Rectangle(1)画矩形:画矩形:public void drawRect(int x,int y,int width,int height);x,y是矩形左上角坐标;是矩形左上角坐标;width,heigh是矩形的宽度和是矩形的宽度和高度。高度。(2)用当前设置的颜色画填充矩形:用当前设置的颜色画填充矩形:public void fillRect(int x,int y,int width,int height);(3)清除指定的矩形区域,该区域颜色将为背景颜色:清除指定的矩形区域,该区域
15、颜色将为背景颜色:public void clearRect(int x,int y,int width,int height);上一页 下一页返回9.1图形处理图形处理(4)画圆角矩形:画圆角矩形:public void drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight);public void fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight);前前4个参数的含义同上;个参数的含义同上;arcWi
16、dth-水平方向圆弧的总宽水平方向圆弧的总宽度;度;arcHeight-垂直方向圆弧的总高度。垂直方向圆弧的总高度。上一页 下一页返回9.1图形处理图形处理/DrawRectangle.javaimport java.applet.*;import java.awt.*;public class DrawRectangle extends Applet public void paint(Graphics g)setBackground(Color.cyan);g.setColor(Color.blue);g.fillRect(20,20,40,40);/为了演示为了演示clearRect()
17、方法的效果,先画一个比清除的区方法的效果,先画一个比清除的区域大域大2个像素的填充矩形。个像素的填充矩形。g.fillRect(79,19,42,42);上一页 下一页返回9.1图形处理图形处理g.clearRect(80,20,40,40);g.fillRoundRect(140,20,40,40,40,40);9.1.5 绘制椭圆和弧绘制椭圆和弧(1)画椭圆画椭圆 public void drawOval(int x,int y,int width,int height);public void fillOval(int x,int y,int width,int height);(2)画
18、圆弧画圆弧 画圆弧就是画部分椭圆的圆弧和填充扇形。画圆弧就是画部分椭圆的圆弧和填充扇形。上一页 下一页返回9.1图形处理图形处理 public void drawArc(int x,int y,int width,int height,int startAngle,int arcAngle)public void fillArc(int x,int y,int width,int height,int startAngle,int arcAngle)startAngle是弧的起始角度;是弧的起始角度;arcAngle 表示从起始角度算起转多少度,逆时针为正。表示从起始角度算起转多少度,逆时针为
19、正。画椭圆的方法画椭圆的方法drawOval(),fillOval具有相同的参数,前具有相同的参数,前两个参数用来定位,实际指定的是包围椭圆的矩形的左上角两个参数用来定位,实际指定的是包围椭圆的矩形的左上角位置,后位置,后2个参数指定了椭圆的宽度和高度,如果取相同值,个参数指定了椭圆的宽度和高度,如果取相同值,则画出的是正圆。则画出的是正圆。drawArc方法可画圆弧,方法可画圆弧,fillArc方法实方法实际画出的是扇形。圆弧是椭圆的一部分,夹际画出的是扇形。圆弧是椭圆的一部分,夹 在两个角之间,在两个角之间,因此画圆弧的方法比画椭圆的方法多了两个参数:起始角和因此画圆弧的方法比画椭圆的方法
20、多了两个参数:起始角和张角张角(以角度为单位以角度为单位)。起始角确定了圆弧的起始位置;张角。起始角确定了圆弧的起始位置;张角确定了圆弧的大小,取正确定了圆弧的大小,取正(负负)值为沿逆值为沿逆 (顺加寸针方向画出顺加寸针方向画出圆弧。当张角取值大于圆弧。当张角取值大于360时,画出的就是椭圆。我们用一时,画出的就是椭圆。我们用一个例子来说明这两个方法的使用。个例子来说明这两个方法的使用。上一页 下一页返回9.1图形处理图形处理/DrawOval.javaimport java.applet.*;import java.awt.*;public class DrawOval extends A
21、pplet public void paint(Graphics g)g.setColor(Color.blue);g.drawRect(20,20,100,60);g.fillOval(20,20,100,60);g.drawOval(140,20,100,60);g.fillArc(140,20,100,60,0,60);上一页 下一页返回9.1图形处理图形处理9.1.6画多边形画多边形将多边形的各个顶点的坐标对应放到整型数组将多边形的各个顶点的坐标对应放到整型数组xPoints(x坐标)和整型数组坐标)和整型数组yPoints(y坐标)中,用以下方法画多坐标)中,用以下方法画多边形和填充
22、多边形:边形和填充多边形:public void drawPolygon(int xPoints,int yPoints,int points);public void fillPolygon(int xPoints,int yPoints,int points);参数参数points表示顶点的个数。创建表示顶点的个数。创建Polygon类的对象类的对象p画多画多边形边形 Polygon类的构造函数:类的构造函数:上一页 下一页返回9.1图形处理图形处理 Polygon();Polygon(int xPoints,int yPoints,int points);画多边形画多边形 public
23、void drawPolygon(Polygon p);public void fillPolygon(Polygon p);追加顶点坐标的方法:追加顶点坐标的方法:public void addPoint(int x,int y)。/DrawPolygon.javaimport java.applet.*;import java.awt.*;public class DrawPolygon extends Applet上一页 下一页返回9.1图形处理图形处理 public void paint(Graphics g)int x=20,40,80,100,80,40;int y=40,20,2
24、0,40,60,60;g.setColor(Color.blue);g.fillPolygon(x,y,6);int x1=140,160,200,220,200,160;int y1=40,20,20,40,60,60;Polygon p=new Polygon(x1,y1,6);g.fillPolygon(p);上一页 下一页返回9.1图形处理图形处理多边形的多边是分别用两个整数数组来表示多边形的多边是分别用两个整数数组来表示x坐标和坐标和y坐标的,坐标的,并用一个整数表示多边的顶点数,多边形可以说是封闭的,并用一个整数表示多边的顶点数,多边形可以说是封闭的,也可以是开放的,取决于最后一条
25、直线终点坐标的取值,若也可以是开放的,取决于最后一条直线终点坐标的取值,若和第一条直线的起点坐标重合画出的多边形为封闭的,否则和第一条直线的起点坐标重合画出的多边形为封闭的,否则为开放的。为开放的。上一页返回9.2 图像处理图像处理/ShowImage.Javaimport java.applet.*;import java.awt.*;public class ShowImage extends Applet public void paint(Graphics g)Image pic=getImage(getDocumentBase(),a.jpg);int w=pic.getWidth(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 电子 教案 第九
限制150内