201711671118《Java程序设计》第十四章总结

本文详细介绍如何在Java中绘制和变换图形、图像,包括使用Graphics2D类进行绘图,利用AffineTransform进行图形变换,以及Area类的布尔运算。同时,文章还讲解了图像加载和绘制的方法,并介绍了音频播放的步骤,包括创建File对象、获取URI和URL,以及使用AudioClip类播放、循环和停止音频。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第14章 图形、图像与音频

14.1 绘制基本图形

Component类有一个方法public void paint(Graphics g),程序可以在其子类中重写这个方法。当程序运行时,java运行环境会用Graphicd2D(Graphics的一个子类)将参数g实例化,对象g就可以在重写paint方法的组件上内绘制图形、图像等 .Graphics2D的“画笔”分别使用draw和fill方法来绘制和填充一个图形。

组件都是矩形形状,组件本身有一个默认的坐标系,组件的左上角的坐标值是(0,0)。

14.2 变换图形

有时需要平移、缩放或旋转一个图形。可以使用AffineTransform类来实现对图形的这些操作。

translate(double a,double b)将图形在x轴方向移动a个像素单位,第一象限为右下。

scale(double a,double b)将图形在x轴方向缩放a倍,b轴方向缩放b倍。

rotate(double number,double x,double y)将图形沿顺时针或者逆时针方向以(x,y)为轴旋转number个弧度。

14.3 图形的布尔运算

两个图形进行布尔运算运算之前,必须分别用这两个图形创建两个Area区域对象,如Area a1 = new Area(T1);

Area类常用方法:

public void add(Area r)与参数r或;--两个图形的合并

public void intersect(Area r) 与参数r与;--两个图形的重叠

public void exclusiveOr(Area rhs) 与参数r异或;--两个图形的非重叠部分

public void subtract(Area rhs) 与参数r差;--T1去掉T1与T2重叠部分

14.5  绘制图像

1.加载图像

组件调用getToolkit()方法可以返回这个对象的引用。Tollkit类的对象调用方法   Image getImage(String fileNme)或Image getImage(File file)。可以返回一个Image对象,该对象封装着参数file(或参数fileName)指定的图像文件。

2.绘制图像

public boolean drawImage(Image img,int x,int y,ImageObserver observer);参数img是被绘制的Image对象,x、y是要绘制指定图像的矩形的左上角所处的位置,observer是加载图像时的图像观察器。

14.6 播放音频

播放音频的步骤如下。

(1)创建File对象

     File musicFile=new File("hello.wav");

(2)获取URI对象(URI类属于java.net包)

    URI uri=musicFile.toURI();

(3)获取URL对象

    URI url=uri.toURL();

(4)创建音频对象(AudioClip和Applet类属于java.applet包)

  AudioClip clip=Applet.newAudioClip(url);

(5)播放,循环与停止

    clip.play()  开始播放,

    clip.loop()  循环播放,

    clip.stop()  停止播放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值