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

📄 efficient.java

📁 java applet 非常全的实例。比较利于初学者进行研究。
💻 JAVA
字号:
import java.awt.*;
import java.applet.*;
import java.io.*;
import java.awt.image.*;

public class Efficient extends Applet implements Runnable
{
  private Image img[],showImage;
  private MediaTracker imageTracker;
  private int ImageW,ImageH,totalImage = 5,currentImage,nextImage;
  private Thread thread;
  private int delay;
  private Image offI;
  private Graphics offG;
  
  public void init()
  {
    this.setBackground(Color.black);
    
    img = new Image[totalImage];
    imageTracker = new MediaTracker(this);
    
    String s = new String("");
    for(int i=0; i<totalImage; i++)
    {
      s = getParameter("image" + (i+1));
      //System.out.println(s);
      img[i] = getImage(getCodeBase(),s);
      imageTracker.addImage(img[i],0);
    }
    try 
    {
      imageTracker.waitForID(0);
    }
    catch(InterruptedException e)
    {
    
    }
    
    if(getParameter("delay") == null)
    {
      delay = 3000;
    }
    else
    {
      delay = Integer.parseInt(getParameter("delay"));
    }
    
    ImageW = img[0].getWidth(this);
    ImageH = img[0].getHeight(this);
    
    offI = createImage(ImageW,ImageH);
    offG = offI.getGraphics();
    
  }
  
  public void start()
  {
    if(thread == null)
    {
      currentImage = 0;
      thread = new Thread(this);
      thread.start();
    }
  }
  public void paint(Graphics g)
  {
    g.drawImage(offI,0,0,this);
  }
  
  public void update(Graphics g)
  {
    paint(g);
  }
  
  public void run()
  {
    while(thread != null)
    {
      try
      {
        thread.sleep(delay);
        
        for(int i=0; i<=(ImageH/2); i++)
        {
          thread.sleep(30);
          offG.setColor(Color.white);
          offG.fillRect(0,0,ImageW,ImageH);
          offG.drawImage(img[currentImage],0,i,ImageW,ImageH-2*i,this);
          repaint();
          //System.out.println("Test" + i);
        }
        
        currentImage = ((currentImage+1)%totalImage);
        
        for(int i=0; i<=(ImageH/2); i++)
        {
          thread.sleep(30);
          offG.setColor(Color.white);
          offG.fillRect(0,0,ImageW,ImageH);
          offG.drawImage(img[currentImage],0,(ImageH/2)-i,ImageW,2*i,this);
          repaint();
          //System.out.println("Test" + i);
        }
        
      }
      catch(InterruptedException e){}
    }
  }

}

⌨️ 快捷键说明

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