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

📄 animation.java

📁 coreJava2源代码v2ch1.rar coreJava2源代码第二卷第一章源代码
💻 JAVA
字号:
/**

   @version 1.20 1999-04-23

   @author Cay Horstmann

*/



import java.awt.*;

import java.awt.image.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import javax.imageio.*;  // Remove for SDK < 1.4 

import javax.swing.*;



/**

   An applet that shows a rotating globe.

*/

public class Animation extends JApplet

{  

   public void init()

   {  

      addMouseListener(new MouseAdapter()

         {  

            public void mousePressed(MouseEvent evt)

            {  

               if (runner == null)

                  start();

               else

                  stop();

            }

         });



      try

      {  

         String imageName = getParameter("imagename");

         imageCount = 1;

         String param = getParameter("imagecount");

         if (param != null)

            imageCount = Integer.parseInt(param);

         current = 0;

         image = null;

         loadImage(new URL(getDocumentBase(), imageName));

      }

      catch (Exception e)

      {  

         showStatus("Error: " + e);

      }

   }



   /**

      Loads an image.

      @param url the URL of the image file

   */

   public void loadImage(URL url)

      throws InterruptedException

         // thrown by MediaTracker.waitFor

   {  

      image = getImage(url);

      MediaTracker tracker = new MediaTracker(this);

      tracker.addImage(image, 0);

      tracker.waitForID(0);

      imageWidth = image.getWidth(null);

      imageHeight = image.getHeight(null);

      resize(imageWidth, imageHeight / imageCount);

   }



   public void paint(Graphics g)

   {  

      if (image == null) return;

      g.drawImage(image, 0, - (imageHeight / imageCount)

         * current, null);

   }



   public void start()

   {  

      runner = new 

         Thread()

         {

            public void run()

            {  

               try

               {  

                  while (!Thread.interrupted())

                  {  

                     repaint();

                     current = (current + 1) % imageCount;

                     Thread.sleep(200);

                  }

               }

               catch(InterruptedException e) {}

            }

         };

      runner.start();

      showStatus("Click to stop");

   }



   public void stop()

   {  

      runner.interrupt();

      runner = null;

      showStatus("Click to restart");

   }



   private Image image;

   private int current;

   private int imageCount;

   private int imageWidth;

   private int imageHeight;

   private Thread runner;

}

⌨️ 快捷键说明

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