⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trackedimageload.java

📁 180个针对Java初学者的简单实例180个针对Java初学者的简单实例180个针对Java初学者的简单实例
💻 JAVA
字号:
//TrackedImageLoad.java主要演示MediaTracker的作用
import java.util.*;
import java.applet.*;
import java.awt.*;
public class TrackedImageLoad extends Applet implements Runnable {
MediaTracker tracker;
  int tracked;
  int frame_rate = 5;      //图片显示速率
  int current_img = 0;     //当前显示的图片
  Thread motor;
  static final int MAXIMAGES = 10;  //最大图片显示数量
  Image img[] = new Image[MAXIMAGES];
  String name[] = new String[MAXIMAGES];
  boolean stopFlag;
/**对applet进行初始化*/
  public void init() {
    tracker = new MediaTracker(this);
    StringTokenizer st = new StringTokenizer(getParameter("img"),"+");
    while(st.hasMoreTokens() && tracked <= MAXIMAGES) {
      name[tracked] = st.nextToken();
      img[tracked] = getImage(getDocumentBase(),name[tracked] + ".jpg");
      tracker.addImage(img[tracked], tracked);
      tracked++;
    }
  }
  public void paint(Graphics g) {
    String loaded = "";
    int donecount = 0;
    for(int i=0; i<tracked; i++) {
      if (tracker.checkID(i, true)) {
        donecount++;
        loaded += name[i] + " ";
      }
    }
    Dimension d = getSize();
    int w = d.width;
    int h = d.height;
    if (donecount == tracked) {
      frame_rate = 1;
      Image i = img[current_img++];
      int iw = i.getWidth(null);
      int ih = i.getHeight(null);
      g.drawImage(i, (w - iw)/2, (h - ih)/2, null);
      if (current_img >= tracked)
        current_img = 0;
    } else {
      int x = w * donecount / tracked;
      g.setColor(Color.black);
      g.fillRect(0, h/3, x, 16);
      g.setColor(Color.white);
      g.fillRect(x, h/3, w-x, 16);
      g.setColor(Color.black);
      g.drawString(loaded, 10, h/2);
    }
  }
/** 启动线程*/
  public void start() {
    motor = new Thread(this);
    stopFlag = false;
    motor.start();
  }
  public void stop() {
    stopFlag = true;
  }
  public void run() {
    motor.setPriority(Thread.MIN_PRIORITY);
    while (true) {
      repaint();
      try {
        Thread.sleep(1000/frame_rate);
      } catch (InterruptedException e) { };
      if(stopFlag)    //当stopFlag为false时停止运行程序
        return;
    }
  }       
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -