background image

int 是简单变量的类型。这种变量可以保存一个数字,此外别无他长。您只要声明一个 int
变量,设置它为某个值后使用即可。另一方面,类可以包含多个成员和方法,这些方法能
简化类的使用。一个易于理解的类的好例子就是 Rectangle 类,让我们从它开始。

我们一直使用的那个程序有一个局限:他总是假定窗口大小是 200 乘 200 像素。为什么我

们不问问窗口 您的尺寸有多大? ,然后据此调整我们的矩形和对角线的大小呢?如果
您回头查看 Graphics 类的说明文档(java.awt.Graphics.html——那个列出了所有可用的绘
图函数的文件),您会发现其中有一个叫做 getClipBounds 的函数。点击此函数名浏览它
的完整说明。这个函数没有参数但是会返回一个 Rectangle 类型的值。返回的矩形包含了绘
图区的宽度和高度。若在此文档页面中点击 Rectangle 就会被转到 Rectangle 类
(java.awt.Graphics.html)的文档页面。查看页首的变量索引您会发现这个类包含四个名字
分别为 x、y、width 和 height 的变量。因此我们将要做的就是用 getClipBounds 得到代表画板
边界的矩形,然后从这个矩形中提取宽度和高度数据,将它们保存在前一个例子中创建
的 width 和 height 变量中,如下所示:

import java.awt.Graphics;
import java.awt.Color;
import java.awt.Rectangle;

public class FirstApplet extends java.applet.Applet
{

    public void paint(Graphics g)
    {
        int width;
        int height;
        Rectangle r;

        r = g.getClipBounds();
        width = r.width - 1;
        height = r.height - 1;

        g.drawRect(0, 0, width, height);
        g.drawLine(0, 0, width, height);
        g.drawLine(width, 0, 0, height);
    }
}

当运行上面程序的时候您会发现矩形和对角线恰好充满绘图区域。而且改变窗口大小时矩
形和对角线还会自动重画适应新的窗口大小。这段代码引入了五个新概念,让我看一看:

1. 首先,因为我们使用了 Rectangle 类,所以要在程序的第三行引进

 

java.awt.Rectangle