java定义形状类_图形绘制_—类_Java语言程

本文详细介绍了Java中的Graphics类,包括其特性如颜色、字体、裁剪区域等,以及绘制形状、填充、文本输出等方法。通过示例代码展示了如何使用Graphics类绘制直线、圆形、柱体、锥体和图片,为创建GUI应用程序提供了基础。
摘要由CSDN通过智能技术生成

图形绘制_—类_Java语言程

10.3.2 图形绘制———Graphics类

图形环境的概念与在GUI平台上开发应用程序紧密相关。虽然通常将窗口和组件本身作为对象来表达,但仍然需要另一个接口来执行实际的绘制、着色以及文本输出操作。Java语言中提供这些功能的基类是java.awt.Graphics。从java.awt.Component类(所有窗口对象的基类)继承的类提供了一个名为paint()的方法,在需要重新绘制组件时,调用该方法。paint()方法只有一个参数,该参数是Graphics类的实例。

Graphics类支持几种确定图形环境状态的特性,以下列出了部分特性。

①Color:当前绘制颜色,它属于java.awt.Color类型。所有的绘制、着色和纯文本输出都将以指定的颜色显示。

②Font:当前字体,它属于java.awt.Font类型。它将用于所有纯文本输出的字体。

③Clip:java.awt.Shape类型的对象,它充当用来定义几何形状的接口。该特性包含的形状定义了图形环境的区域,绘制将作用于该区域。通常情况下,这一形状与整个图形环境相同,但也并不一定如此。

④ClipBounds:java.awt.Rectangle对象,表示将包围由Clip特性定义的Shape的最小矩形。它是只读特性。

⑤FontMetrics:java.awt.FontMetrics类型的只读特性。该对象含有关于图形环境中当前起作用的Font的信息。

⑥Paint Mode:该特性控制环境使用当前颜色的方式。如果调用了setPaintMode()方法,那么所有绘制操作都将使用当前颜色;如果调用了setXORMode()方法(该方法获取一个Color类型的参数),那么就用指定的颜色对像素做“XOR”操作,XOR具有在重新绘制时恢复初始位模式的特性,因此它被用作橡皮擦除和动画操作。

下面介绍Graphics类中的一些重要方法。

可以将java.awt.Graphics支持的非特性方法划分为如下3个常规类别之下。

(1)跟踪形状轮廓的绘制方法(省略了方法的参数,请参考API)

b774bb2a3b502540526c88494c94c479.png

(2)填充形状轮廓的绘制方法(省略了方法的参数,请参考API)

834ed7206f11e71bbb4ae4a6295e5136.png

(3)诸如translate()之类的杂项方法

它们将图形环境的起点从其缺省值(0,0)变成其他值。

请注意,没有对任意形状进行操作的操作。直到Java 2D出现以前,图形操作一直都是很有局限性的。还需注意的是,对于渲染具有属性的文本也没有直接支持;显示格式化文本是一项费事的任务,需要手工完成。

【例10-3】 使用Graphics中绘制直线的方法,绘制一个网格。

4c13637662d0efd848fb9ff43097bb87.png

下面是HTML文件:

4dd5b6d287f2a5c072736e7b677c0f6a.png

程序运行结果如图10-2所示。

分析与思考:上面的程序省略了init、start、stop和destroy等,默认继承了JApplet相关的方法。(www.guayunfan.com)

模仿例10-3:把上面的网格的参数进行修改,绘制成一个围棋的棋盘。棋盘上需要绘制实心的圆,请参考Graphics中圆形绘制的API。

a84bf0650b80b3f0f4d615c439c9bfb2.png

图10-2 画线程序

【例10-4】 使用Graphics中绘制圆形的方法,绘制若干柱体和锥体。

0ff953b36398293e1bfe8aba7f6ff462.png

下面是HTML文件:

ee6c27ee72b47fa6559ea604aac6c21b.png

程序运行结果如图10-3所示。

da66f2eb69d860d6bfc82bda9c70d19a.png

图10-3 圆形绘制

分析与思考:这个例子相对比较简单,就是用Graphics中的drawOval方法进行圆形的绘制。

模仿例10-4:模仿上面的例子,绘制圆锥体,锥顶在上方。

【例10-5】 使用Graphics中的绘图方法绘制图片(关于绘图的内容,随后的10.5.1节还有更详细的讲解)。

2856b211ccd8ad778cfa041cb7b1c572.png

下面是HTML文件:

fa7a01597303adfe06e285552fe60198.png

程序运行结果如图10-4所示。

d29889e4630b1e9eb3996f3f8ba1a009.png

图10-4 图片绘制

分析与思考:drawImage的第4个参数要求是一个Observer(这是一个接口),Applet是实现了这个接口的,因此可以使用this。

模仿例10-5:模仿上面的例子,在界面中不同的位置再添加几幅图片,并显示。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值