Как сделать вашу собственную анимацию из серии I

Этот совет Java Swing иллюстрирует метод анимации серии изображений, расположенный на месте. Разработчики могут использовать этот совет для создания анимации в их applicationa рисунок с файлами. Эта подсказка может быть использована для анимированных логотипов применения.


import java.awt.*;

import java.awt.event.*;

import javax.swing.*;



public class LogoAnimator extends JPanel

                          implements ActionListener {

   protected ImageIcon images[];

   protected int totalImages = 30,

                 currentImage = 0,

                 animationDelay = 50// 50 millisecond delay

   protected Timer animationTimer;



   public LogoAnimator()

   {

      setSizegetPreferredSize() );



      images = new ImageIcontotalImages ];



      for int i = 0; i < images.length; ++i 

         images=

            new ImageIcon"images/java" + i + ".gif" );



      startAnimation();

   }



   public void paintComponentGraphics g )

   {

      super.paintComponent);



      if imagescurrentImage ].getImageLoadStatus() ==

           MediaTracker.COMPLETE ) {

         imagescurrentImage ].paintIconthis, g, 0);

         currentImage = currentImage + % totalImages;

      }

   }



   public void actionPerformedActionEvent e )

   {

      repaint();

   }



   public void startAnimation()

   {

      if animationTimer == null ) {

         currentImage = 0;  

         animationTimer = new TimeranimationDelay, this );

         animationTimer.start();

      }

      else  // continue from last image displayed

         if ! animationTimer.isRunning() )

            animationTimer.restart();

   }



   public void stopAnimation()

   {

      animationTimer.stop();

   }



   public Dimension getMinimumSize()

   

      return getPreferredSize()

   }



   public Dimension getPreferredSize()

   {

      return new Dimension16080 );

   }



   public static void mainString args[] )

   {

      LogoAnimator anim = new LogoAnimator();



      JFrame app = new JFrame"Animator test" );

      app.getContentPane().addanim, BorderLayout.CENTER );



      app.addWindowListener(

         new WindowAdapter() {

            public void windowClosingWindowEvent e )

            {

               System.exit);

            }

         }

      );



      // The constants 10 and 30 are used below to size the

      // window 10 pixels wider than the animation and

      // 30 pixels taller than the animation. 

      app.setSizeanim.getPreferredSize().width + 10,

                   anim.getPreferredSize().height + 30 );

   }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>