一、Java绘图类:绘图是高级程序设计中非常重要的技术。例如,应用程序可以绘制闪屏图片、背景图片、组件列观等,Web 程序可以绘制统计图、数据库存储的图片资源等。
1.Graphics类:Graphics 类是所有图形上下文的抽象基类,它允许应用程序在组件以及闭屏图像上进行绘制.
2. Graphics2D类:使用Graphics 类可以完成简单的图形绘制任务,但是它所实现的功能非常有限,如无法改变线条的粗细、不能对图片使用旋转和模糊等过滤效果。
二、绘制图形:Java可以分别使用Graphics 类和 Graphics2D 类绘制图形,Graphics类使用不同的方法实现不同图形的绘制。例如,drawLine0方法可以绘制直线,drawRect0方法用于绘制矩形,drawOval0方法用于绘制椭圆形等。
三、绘图颜色与画笔属性:Java 语言使用 Color 类封装颜色的各种属性,并对颜色进行管理。另外,在绘制图形时还可以指定线的粗细和虚实等画笔属性。
1.设置颜色:使用Color类可以创建任意颜色的对象,不用担心平台是否支持该颜色。因为Jaa以跨平台和与硬件无关的方式支持颜色管理。创建 Color 对象的构造方法有如下两种:
Colar col = new Color(int r, int g, int b) Color col = new Color(int rgb)
已 gb:颜色值,该值是红、绿、蓝三原色的总和
该参数是三原色中红色的取值。
该参数是三原色中绿色的取值
该参数是三原色中蓝色的取值。
2.设置画笔:默认情况下,Graphics 类使用的画笔属性是粗细为1个像素的正方形,而 Graphics2D 类可以调setStroke0方法设置画笔的属性,如改变线条的粗细、虚实,定义线段端点的形状、风格等。语法格式如下:setStroke(Stroke stroke)
其中,参数 stroke 是 Stroke 接口的实现类对象。
setStroke0)方法必须接受一个Stroke 接口的实现类对象作参数,javaawt 包中提供了 BasicStroke类它实现了 Stroke 接口,并且通过不同的构造方法创建画笔属性不同的对象。这些构造方法如下:
BasicStroke()。
BasicStroke(float width)。
BasicStroke(float width, int cap, int join)。
BasicStroke(float width, int cap, int join, float miterlimit)。
BasicStroke(float width, int cap, int join, float miterlimit, floatl] dash, float dash phase)。
四、绘制文本:java 绘图类也可以用来绘制文本内容,且可以在绘制前设置字体的样式、大小等。
1.设置字体:使用Font类封装了字体的大小、样式等属性,该类在java.awt 包中定文,其构造方法可以指亲等体的名称、大小和样式3个属性。语法如下:
fonString name, int style, int size)
2.显示文字:Graphics2D类提供了 drawString0方法,使用该方法可以实现图形上下文的文本绘制,从而实图片上显示文字的功能。语法格式有如下两种:
drawString(String str, int x, int y) drawString(String str, float x, float y)
str:要绘制的文本字符串。
x:绘制字符串的水平起始位置。
y:绘制字符串的垂直起始位置。
这两个方法唯一不同的就是x和y的参数类型不同。
五、显示图片:绘图类不仅可以绘制图形和文本,还可以使用drawImage0方法将图片资源显示到绘图上下文中,而且可以实现各种特效处理,如图片的缩放、翻转等。
drawlmage(lmage img, int x, int y, lmageObserver observer)
该方法将img 图片显示在x、y 指定的位置上。
六、图像处理:开发高级的桌面应用程序,必须掌握一些图像处理与动画制作的技术,如在程序中显示统计图、销售趋势图、动态按钮等。
1.放大与缩小:使用了 drawImage0方法将图片以原始大小显示在窗体中,要想实现图片的放大与缩小,则需要使用它的重载方法。语法如下:
drawlmage(lmage img, int x, int y, int width, int height, lmageObserver observer)
2.图像翻转:图像的翻转需要使用drawImage0方法的另一个重载方法。语法如下:
drawimage(lmage img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, lmageObserver observer)
3.图像旋转:图像旋转需要调用Graphics2D类的 rotate0方法,该方法将根据指定的弧度旋转图像。语法如下: rotate(double theta) 其中,theta 是指旋转的弧度。
4. 图像倾斜:可以使用 Graphics2D 类提供的 shear0方法设置绘图的倾斜方向,从而使图像实现倾斜的效果。语法如下:shear(double shx, double shy) shx:水平方向的倾斜量。 shy:垂直方向的倾斜量。
例题19.1-19.8: