Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад]

Исходный текст программы MTrackerDemo.java

Оглавление

Назад

// ==========================================
// MTrackerDemo.java
//(C) Alexandr Frolov, 1998
// E-mail: frolov@glasnet.ru
// Web:    http://www.glasnet.ru/~frolov 
// ==========================================

import java.applet.Applet;
import java.awt.*;

public class MTrackerDemo extends Applet
  implements Runnable
{
  Thread thr = null;
  boolean bImagesLoaded = false;
  int nCurrentImage = 0;
  Image[] im;
  
  // ============================================
  // start
  // ============================================
  public void start()
  {
    if(thr == null)
    {
      thr = new Thread(this);
      thr.start();
    }
  }

  // ============================================
  // stop
  // ============================================
  public void stop()
  {
    if(thr != null)
    {
      thr.stop();
      thr = null;
    }
  }

  // ============================================
  // run
  // ============================================
  public void run()
  {
    nCurrentImage = 0;
    
    if(!bImagesLoaded)
    {
      im = new Image[3];
      
      MediaTracker mt = new MediaTracker(this);
      String s;
      
      for(int i = 0; i < 3; i++)
      {
	s = "img" + (i + 1) + ".jpg";
	
	im[i] = 
	  getImage(getDocumentBase(), s);
	  
	mt.addImage(im[i], 0);  
      }
      
      try
      {
	mt.waitForAll();
	bImagesLoaded = !mt.isErrorAny();
      }
      catch(InterruptedException ie)
      {
	stop();
      }	
    }
    
    Graphics g = getGraphics();
    
    while(true)
    {
      if(bImagesLoaded)
      {
	g.drawImage(im[nCurrentImage],
	  0, 0, null);
	
        nCurrentImage++;
	
	if(nCurrentImage > 2)
          nCurrentImage = 0;
      }
      
      try
      {
	thr.sleep(2000);
      }
      catch(InterruptedException ie)
      {
	stop();
      }	
    }
  }
  
  // ============================================
  // paint
  // ============================================
  public void paint(Graphics g)
  {
    if(!bImagesLoaded)
      g.drawString("Loading images...", 10, 30);    
  }
  
  // ============================================
  // getAppletInfo
  // ============================================
  public String getAppletInfo()
  {
    return "Name: MTrackerDemo";
  }
}

[Назад]