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() 停止播放