`

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<errArray.length;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代表着空格符号
分享到:
评论

相关推荐

    javaApplet学习简单例子

    这个"javaApplet学习简单例子"是一个关于计算贷款利率的实例,非常适合初学者理解Java Applet的工作原理和编程模式。 在Java Applet中,主要涉及以下几个核心知识点: 1. **Applet类**:所有的Java Applet都继承自...

    JavaApplet_javaapplet小程序_java_

    JavaApplet是Java技术在早期Web开发中的一种重要应用,它允许开发者创建可以在网页中运行的小型程序。这些小程序能够增强交互性,提供动态内容,比如游戏、图表、动画等。JavaApplet运行在用户的浏览器上,由Java ...

    java applet应用实例

    Java Applet是Java技术在早期Web开发中的一个重要应用,它允许开发者创建能在浏览器中运行的小型Java程序,为用户提供互动体验。本应用实例主要展示了如何使用Java Applet开发小游戏和小应用,帮助开发者深入理解...

    JavaApplet与JavaScript

    ### JavaApplet与JavaScript #### 6.1 JavaApplet ##### 6.1.1 JavaApplet概述 **Applet 类层次结构:** JavaApplet 的基础是 `java.applet.Applet` 类,它是从 `java.awt.Panel` 继承而来的一个特殊的图形组件。...

    java applet实例讲解

    Java Applet是Java技术在早期Web开发中的一种应用方式,它允许开发者创建可以在浏览器中运行的小型程序。本文将深入讲解Java Applet的概念、工作原理以及如何通过实例进行学习。 一、Java Applet概述 Java Applet是...

    java applet 多多例子

    Java Applet是Java技术在早期Web开发中的一种应用方式,它允许开发者创建可以在浏览器中运行的小型应用程序。这些小程序能够增强网页的交互性,提供动态的用户体验。在本压缩包中,包含了一些经典的Java Applet实例...

    JAVA界面设计——Applet和JFrame图片加载篇

    在Applet中加载图片,你需要使用`java.awt.Image`类和`javax.swing.ImageIcon`类。以下是一个基本示例: ```java import java.applet.Applet; import java.awt.Image; import javax.swing.ImageIcon; public class...

    Java applet程序设计

    Java Applet程序设计是Java语言在Web环境中的早期应用,它允许开发者创建可以在浏览器中运行的小型应用程序。Applet能够嵌入HTML页面中,提供动态交互功能,如动画、图像处理、用户输入处理等。本篇文章将深入探讨...

    java源码包---java 源码 大量 实例

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    Java与Java+Applet和JavaScript间的混编方法

    3. **使用 Applet 对象访问**:一旦 Applet 加载完成,就可以通过 JavaScript 的 `applet` 对象来访问 Java Applet 中的方法和变量。值得注意的是,JavaScript 提供的 Applet 对象具有一些特定的属性,如 `applet` ...

    Java Applet 基础

    最后,通过示例代码如`MyApplet_param.java`、`P70例子1`、`P73例子2`和两个Applet之间的通信,我们可以看到如何实际运用这些知识。例如,`Applet1.java`和`Applet2.java`可以共享数据,`Applet3.html`则提供了设置...

    java小程序Applet显示图片

    在Java编程环境中,开发小程序Applet来显示图片是一项常见的任务,尤其在早期的网页交互设计中。Applet是Java的一种特殊类型,它可以在支持Java的Web浏览器中运行,为用户提供动态和交互式的体验。本教程将详细介绍...

    Java Applet实例讲解

    通过研究这些例子,你可以更深入地理解如何编写和部署Java Applet,以及如何处理与用户的交互和网络通信。同时,这也是回顾历史和比较现代Web技术发展的良好机会。 总之,Java Applet是Java历史上的一个重要组成...

    在Java中如何利用Applet来加载图像

    该方法需要传入图像对象、x和y坐标,以及ImageObserver对象(在我们的例子中是Applet自身): ```java g.drawImage(image, xPosition, yPosition, this); ``` 对于大尺寸的图像,可能需要考虑压缩处理,以减少内存...

    最简单的java applet图像移动重画实例

    Java Applet是Java平台早期的一种技术,用于在Web浏览器中执行小程序,比如显示交互式的图形、游戏等。在这个"最简单的java applet图像移动重画实例"中,我们将深入探讨如何利用Java Applet来实现一个动态移动的图像...

    java的applet实例

    Java的Applet实例是Java编程领域中的一个基础概念,它主要涉及到Web应用程序的早期开发技术。Applet是一种在客户端浏览器中运行的小型Java程序,它能够增强网页的交互性,提供动态内容展示。在Java的发展历程中,...

    利用JAVA applet绘制的时钟

    Java Applet是Java平台早期的一种技术,用于在Web浏览器中执行小型的Java程序,它可以提供交互性和动态内容。本示例中的"利用JAVA applet绘制的时钟"是一个基于Java Applet实现的模拟时钟,它能够实时显示当前时间,...

    一些JavaApplet小程序应用源码例子集

    在JavaApplet的生命周期中,主要有以下几个关键阶段:初始化(init)、加载(load)、启动(start)、绘制(paint)、暂停(stop)和终止(destroy)。通过研究这些源码,我们可以深入了解每个阶段的实现细节和功能...

    java applet详解

    在上面的例子中,尽管 Applet 能够启动计算器,但通常情况下访问系统资源会受限。 7. **现代替代技术**: - 虽然 Applet 曾经是实现网页交互的重要手段,但由于安全问题和现代浏览器的支持减少,现在已被 Java Web...

Global site tag (gtag.js) - Google Analytics