java applet 图片路径,java applet事例-跟踪图片对象的加载

java applet例子---跟踪图片对象的加载

用java.awt包中的MediaTracker跟踪一个Image对象的装载,可以保证所有图片都加载完毕。

package applet;

import java.applet.Applet;

import java.awt.Button;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.MediaTracker;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.net.MalformedURLException;

import java.net.URL;

public class MyMediaTracker extends Applet implements Runnable, ActionListener {

Button loadB;

Thread runner;

MediaTracker tracker;

Image im1, im2;

boolean bothok = false;

@Override

public void run() {

Object[] errArray;

tracker = new MediaTracker(this);

System.out.println("codeBase:"+this.getCodeBase());

try {

//this.getCodeBase()是.../java项目名称(此applet所在的java项目)/bin/

im1 = this.getImage(new URL(this.getCodeBase(),"jiangnan.jpg"));

im2 = this.getImage(new URL(this.getCodeBase(),"happiness.jpg"));

} catch (MalformedURLException e) {

e.printStackTrace();

}

tracker.addImage(im1, 0);

tracker.addImage(im2, 0);

try {

tracker.waitForID(0);

} catch (InterruptedException e) {

e.printStackTrace();

}

if(tracker.checkAll()){

System.out.println("checkAll() is true");

}

else{

System.out.println("checkAll() is false");

}

if(tracker.isErrorAny()){

System.out.println("There is error in Tracker!");

if((tracker.statusAll(false)&MediaTracker.ERRORED)!=0){

System.out.println("图片在加载过程中出现错误");

}

else {

System.out.println("图片在加载过程中没有出现错误");

}

if((tracker.statusAll(false)&MediaTracker.ABORTED)!=0){

System.out.println("图片在加载过程中被中断");

}

else {

System.out.println("图片在加载过程中没有被中断");

}

if((tracker.statusAll(false)&MediaTracker.COMPLETE)!=0){

System.out.println("图片已被加载完成");

}

else {

System.out.println("图片没有被加载完成");

}

if((tracker.statusAll(false)&MediaTracker.LOADING)!=0){

System.out.println("图片还在加载中");

}

else {

System.out.println("图片未在加载中");

}

errArray = tracker.getErrorsID(0);

for(int i = 0;i

if(errArray[i]==im1){

System.out.println("图片1发生错误");

}

if(errArray[i]==im2){

System.out.println("图片2发生错误");

}

}

} //出错

else {

System.out.println("没有发生错误");

}

repaint();

bothok = true;

}

@Override

public void actionPerformed(ActionEvent e) {

if(e.getSource() ==loadB){

if(runner ==null){

runner = new Thread(this);

runner.start();

}

}

}

public void init(){

loadB = new Button("load");

loadB.addActionListener(this);

this.add(loadB);

}

public void paint(Graphics g) {

if (bothok) {

g.drawImage(im1, 20, 70, this);

g.drawImage(im2,400, 50, this);

}

}

}

执行结果:

codeBase:file:/E:/Eclipse%20workspace/DataStructSample/bin/

checkAll() is true

没有发生错误

其中%20代表着空格符号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值