《Java程序设计》第十一周学习总结

本文详细介绍如何使用Java进行图形绘制,包括直线、矩形、圆角矩形、椭圆等基本图形的创建,以及图形的平移、缩放、旋转等变换操作。此外,还介绍了图形间的布尔运算,如并集、交集、差集和异或。最后,文章讲解了如何在Java中加载和绘制图像,以及播放音频文件。

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

1.1绘制基本图形

1、直线

使用java.awt.geom包中的Line2D的静态内部类Double

new Line2D.Double(double x1,double x2,double y1,double y2);

创建起点为(x1,y1),终点为(x2,y2)的直线

 

2、矩形

使用Rectangle2D.Double类

new Rectangle2D.Double(double x,double y,double w,double h);

创建于该左上角坐标是(x,y),宽是w,高是h的矩形对象

 

3、圆角矩形

使用RoundRectangle2D.Double类

new RoundRectangle2D.Double(double x,double y,double w,double h,double arcw,double arch);

创建左上角坐标是(x,y),宽是w,高是h,圆角的长轴和短轴分别是arcw和arch的矩形对象

 

4、椭圆

使用Ellipse2D.Double类

new Ellipse2D.Double(double x,double y,double w,double h)

创建一个外接矩形的左上角坐标是(x,y),宽是w,高是h的椭圆对象

 

1.2变换图形

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

首先使用AffineTransform类创建一个对象:

AffineTransform trans=new AffineTransform();

对象trans使用下列3个方法来实现对图形的变换操作

①translate(double 啊,doubleb)将图形在x轴方向移动a个像素单位,a是正值时向右移动,是负值时向左移动;y轴方向移动b个像素单位,b是正值时向右移动,是负值时向左移动

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

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

 

1.3图形的布尔运算

假设T1、T2是两个图形

T1和T2的布尔“与”(AND)运算的结果是两个图形的重叠部分

T1和T2的布尔“或”(OR)运算的结果是两个图形的合并

T1和T2的布尔“差”(NOT)运算的结果是T1去掉T1和T2的重叠部分

T1和T2的布尔“异或:(XOR)运算的结果是两个图形的非重叠部分

 

1.5绘制图像

可以首先使用Icon类的子类ImageIcon创建封装cat.jpg图形文件的IconImage对象

Icon icon=new ImageIcon(”cat.jpeg“);

然后让按钮组件button调用方法设置其上的图像(即显示图像)

button.setIcon(icon);

 

除了上述方法还可以使用Graphics绘制图像步骤如下

(1)加载图像

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

(2)绘制图像

图像被加载后,即被封装到Image实例中后,就可以在paint方法中绘制它了。Graphics;诶提供了几个名为drawImage的方法用于绘制图像

 

1.6播放音频

播放音频的步骤如下

(1)创建File对象

File musicFile=new File(“hello.wav”);

(2)回去URI对象(URI类属于java.net包)

URI uri=musicFile.toURI();

(3)获取URL对象

URL url=uri.toURL();

(4)创建音频对象

AudioClip clip=Applet.newAudioClip();

(5)播放、循环与停止

clip.play()  开始播放

clip.loop()  循环播放

clip.stop()  停止播放

 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值