当前页面: 开发资料首页 → Java 专题 → java图形图像——使用图像追踪
java图形图像——使用图像追踪
摘要: java图形图像——使用图像追踪
java图形图像——使用图像追踪
// 程序:使用图像追踪
// 范例文件:UseMediaTracker.java
import java.net.*;
import java.awt.*;
import java.applet.*;
public class UseMediaTracker extends Applet
{
int AppletWidth,AppletHeight,Ascent,Descent,StringWidth,X,Y;
Image Bg,Ship1,Ship2,Plane1,Plane2;
MediaTracker MT;
public void init()
{
AppletWidth = getSize().width; //取得Applet的显示宽度
AppletHeight = getSize().height; //取得Applet的显示高度
//指定必须取得的图像
Bg = getImage(getDocumentBase(),"Images/1.gif");
Ship1 = getImage(getDocumentBase(),"Images/3.gif");
Ship2 = getImage(getDocumentBase(),"Images/4.gif");
Plane1 = getImage(getDocumentBase(),"Images/5.gif");
Plane2 = getImage(getDocumentBase(),"Images/6.gif");
MT = new MediaTracker(this); //建立MediaTracker类实体
//将必须取得的图像加入追踪清单中
MT.addImage(Bg ,0);
MT.addImage(Ship1 ,0);
MT.addImage(Ship2 ,0);
MT.addImage(Plane1,0);
MT.addImage(Plane2,0);
try
{
showStatus("图像加载中..."); //在状态列显示信息
MT.waitForAll(); //等待所有图像下载
}
catch(InterruptedException E){ }
}
public void paint(Graphics g)
{
//如果图像下载发生任何错误的话...
if((MT.statusAll(false) & MediaTracker.ERRORED) != 0)
{
FontMetrics FM = g.getFontMetrics();
Ascent = FM.getAscent();
Descent = FM.getDescent();
StringWidth = FM.stringWidth("加载图像发生错误...");
X = (AppletWidth - StringWidth) / 2;
Y = (AppletHeight - (Ascent + Descent)) / 2 + Ascent;
setBackground(Color.black); //背景设为黑色
g.setColor(Color.white); //字符串设为白色
g.drawString("加载图像发生错误...",X,Y); //置中显示字符串
return; //结束函数执行
}
//如果正确下载所有图像则将所有图像绘制在Applet中
g.drawImage(Bg ,0,0,320,240,this);
g.drawImage(Ship1 ,20,140,80,80,this);
g.drawImage(Ship2 ,180,140,80,80,this);
g.drawImage(Plane1,30,10,100,100,this);
g.drawImage(Plane2,250,50,50,50,this);
}
}
这个实例主要就是使用MediaTracker类,这各类主要作用是可以得到图片的加载情况。主要代码如下:
MT = new MediaTracker(this); //建立MediaTracker类实体
//将必须取得的图像加入追踪清单中
MT.addImage(Bg ,0);
MT.addImage(Ship1 ,0);
MT.addImage(Ship2 ,0);
MT.addImage(Plane1,0);
MT.addImage(Plane2,0);
try
{
showStatus("图像加载中..."); //在状态列显示信息
MT.waitForAll(); //等待所有图像下载
}
catch(InterruptedException E){ }
}
public void paint(Graphics g)
{
//如果图像下载发生任何错误的话...
if((MT.statusAll(false) & MediaTracker.ERRORED) != 0)