Applet 小程序( 2)
辽宁经济职业技术学院信息系
硕士、副教授 陈英
applet传递参数
向 applet传递参数的两个步骤
1) 在起始页中要有 <PARAM>标签
2) 在 applet中要有 getParameter方法
在起始页中有,
<applet code=Showdate width=600 heigt=80>
<param name=rem value=“时间是,,</applet>
在 applet中有,
string title=getParameter(rem);
在显示时间的命令中加入 title:
g.drawString(title+timeNow.toString(),5,50);
Applet的显示策略
维护一个显示模型 。 这个模型是对为再次提供
显示而所需做的事情的一个定义 。 关于如何去
做的指令在 paint()方法中被具体化;这些指令
所用的数据通常是全局成员变量 。
使 paint()提供仅仅基于该模型的显示 。 这使得
无论 paint()何时被调用, 它都能以一致的方法
再生该显示, 并正确地处理显露问题 。
使得程序对显示的改变, 通过更新该模型而调
用 repaint()方法来进行, 以使 update()方法
( 最终是 paint()方法 ) 被 AWT线程调用 。
Applet显示
Applet本质上是图形方式的,所以尽管你可以
提出 System.out.println()的调用请求,通常也
不能这样做,而是应该在图形环境中创建你的
显示。
方法 paint()由浏览器环境调用 。
你可以通过创建一个 paint()方法在 Applet的
panel上绘图。只要 Applet的显示需要刷新,
paint()方法就会被浏览器环境调用。例如,当
浏览器窗口被最小化或被要求以图标方式显示
时,这种调用就会发生。
你应该编写自己的 paint()方法,以使它在任何
时候被调用时都能正常地工作。对它的调用是
异步产生的,且由环境而不是程序来驱动。
paint()方法和图形对象
paint()方法带有一个参数,它是
java.awt.Graphics类的一个实例。这个参数总是
建立该 Applet的 panel的图形上下文。可以用这
个上下文在 Applet中绘图或写入文本。

import java.awt.*;
import java.applet.*;
public class HelloWorld extends Applet {
public void paint(Graphics g){
g.drawString("Hello World!",25,25);
AWT绘图
Paint(Graphics g)方法
显露处理自动地发生,且导致对 paint()方法的一次调用。
一种 Graphics类的被称为裁剪矩形的设备常用于对 paint()
方法进行优化。除非必要,更新不会完全覆盖整个图形
区域,而是严格限制在被破坏的范围内。
repaint()方法
对 repaint()的调用可通知系统:你想改变显示, 于是系统
将调用 paint()。
update(Graphics g)方法
repaint()实际上产生了一个调用另一方法 update()的 AWT
线程。 update方法通常清除当前的显示并调用 paint()。
update()方法可以被修改,如:为了减少闪烁可不清除显
示而直接调用 paint()。
图形处理
图形坐标系统,
任何与绘图有关的操作
第一个要用的是
java.awt.Graphics类
Graphics类的对象不是
由 new产生的,而是由系
统或其他方式直接将生好的 Graphics对象当作方法的
参数,再交给程序设计者去处理,例如,
paint(Graphics g)
x
y
0
图形处理
Graphics的方法
paint(Graphics g)
{ g.clearRect(); g.copyArea();
g.drawAre() ;
g.drawLine();
g.drawOval();g.drawRect();
g.drawPolygon(); g.fillArc(); g.fillOval();
g.fillPolygen(); g.fillRect(); g.getColor();
g.getFont() g.setFont();
g.setColor(); g.getFontMetrics()
g.fillRoundRect()
}
字型的设置
字型设置的方法
Font font=new
Font(“TimesRoman”,Font.ITALIC,24);
g.setFont(font);
在小应用程序中显示输出的方法
g.drawString(String,int x,int y);
g.drawChars(char data[],int offset,int length,int x,
int y);
g.drawBytes(byte data[],int offset,int length,int x,int
y);
字型的设置
例,
g.drawString(“This is a test”,5,10);
获取字体的属性
Font font=g.getFont();
Font类中常用的方法
GetFamily() getName() getSize()
getStyle()
isItalic() isPlain() isBold()
toString()
字型的设置获取更详细的数据,请查阅有关 FontMetrics
类的方法
fontMetrics=getFontMetrics(font);
FontMetrics中比较重要的方法有,
1) stringWidth
2) charWidth
3) getAscent
4) getDescent
5) getLeading
6) getHeigh
颜色的调整
Color对象的使用
创造自己的颜色,
Color mycolor=new Color(int red,int blue,
int green);
g.setColor(Color.yellow)
g.setColor(mycolor);
例,随机产生颜色并画圆
方法间的内在关系
AWT thread( waiting)
update()
{ clear arae
call paint()
paint()
repaint() Exposure