首页 理论教育Java面向对象程序设计:Applet的图形绘制方法

Java面向对象程序设计:Applet的图形绘制方法

【摘要】:向Applet中添加其他AWT组件及其事件处理的方式,与图形用户界面程序的设计是一样的。Applet中有3个与显示相关的方法,即paint()、update()和repaint()。这是除了与生命周期有关的4个基本方法之外,专门用于显示及刷新的重要的Applet方法,它们都是在java.awt.Component类中声明的。当Applet首次被装载,以及每次窗口放大、缩小、刷新时,都要调用paint()方法。

Applet本身是一个AWT组件,因此它也具有一般AWT组件的图形绘制功能,它是从java.awt.Panel类继承而来的,因此它本身也是一个容器,可以往其中添加其他的AWT组件,从而构造更复杂、更有用的Applet程序。向Applet中添加其他AWT组件及其事件处理的方式,与图形用户界面程序的设计是一样的。

Applet中有3个与显示相关的方法,即paint()、update()和repaint()。这是除了与生命周期有关的4个基本方法之外,专门用于显示及刷新的重要的Applet方法,它们都是在java.awt.Component类中声明的。

1.paint(Graphics g)方法

Applet本身是一个容器,因此任何输出都必须用到图形方法paint()。当Applet首次被装载,以及每次窗口放大、缩小、刷新时,都要调用paint()方法。paint()方法由AWT线程调用,而不是由程序调用,若程序需要改变组件形状,则可调用repaint()方法。

paint()方法的参数是Graphics类的对象g,该对象不是由new产生的,而是由系统或其他方式直接将生成的Graphics对象当作方法的参数,再交给paint()方法。在paint()方法,这个Graphics类参数是绘图的关键。它支持两种绘制:一种是基本的绘图,包括绘点、线、矩形、文字等;另一种是绘图像。在进行基本绘图时,可以设定所需的颜色和字体等,这需要用到Font、FontMetrics和Color三个类。

另外,paint()方法只有被重写才能绘制自己所需的内容。(www.chuimin.cn)

2.update()方法

update()方法用于更新图形。它首先清除背景,然后设置前景,最后调用paint()方法来完成Applet中的具体绘图。通常不用重写update()方法。

3.repaint()方法

repaint()方法主要用于重绘图形,它是通过调用update()方法来实现图形重绘的。当组件外形发生变化时,系统将自动调用repaint()方法。

AWT线程要处理组件的绘图工作,并负责其输入事件,因此必须尽量缩短paint()方法和update()方法的长度,特别是在paint()方法中不要执行太消耗时间的操作。