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

📄 logoanimator.java

📁 java 编程源代码
💻 JAVA
字号:
// Fig. 6.34: LogoAnimator.java// LogoAnimator is a JavaBean containing an animated logo.package com.deitel.advjhtp1.beans;// Java core packagesimport java.awt.*;import java.awt.event.*;import java.io.*;import java.net.*;// Java extension packagesimport javax.swing.*;public class LogoAnimator extends JPanel    implements ActionListener, Serializable {   protected ImageIcon images[];   protected int totalImages = 30, currentImage;   protected Timer animationTimer;   // load images and start animation   public LogoAnimator()   {      images = new ImageIcon[ totalImages ];      URL url;      // load animation frames      for ( int i = 0; i < images.length; ++i ) {         url = LogoAnimator.class.getResource(             "images/deitel" + i + ".png" );         images[ i ] = new ImageIcon( url );      }      startAnimation();   }   // render one frame of the animation   public void paintComponent( Graphics g )   {      super.paintComponent( g );      // draw current animation frame      images[ currentImage ].paintIcon( this, g, 0, 0 );      currentImage = ( currentImage + 1 ) % totalImages;   }   // start Timer that drives animation   public void startAnimation()   {      // if animationTimer is null, restart animation      if ( animationTimer == null ) {         currentImage = 0;           animationTimer = new Timer( 50, this );         animationTimer.start();      }            else  // continue from last image displayed         if ( !animationTimer.isRunning() )            animationTimer.restart();   }   // repaint when Timer event occurs   public void actionPerformed( ActionEvent actionEvent )   {      repaint();   }   // stop Timer that drives animation   public void stopAnimation()   {      animationTimer.stop();   }   // get animation preferred width and height   public Dimension getPreferredSize()   {      return new Dimension( 160, 80 );   }   // get animation minimum width and height   public Dimension getMinimumSize()   {       return getPreferredSize();    }   // execute bean as standalone application   public static void main( String args[] )   {      // create new LogoAnimator      LogoAnimator animation = new LogoAnimator();      // create new JFrame with title "Animation test"       JFrame application = new JFrame( "Animator test" );      application.setDefaultCloseOperation(          JFrame.EXIT_ON_CLOSE );      // add LogoAnimator to JFrame      application.getContentPane().add( animation,         BorderLayout.CENTER );      // set the window size and validate layout      application.pack();      application.setVisible( true );   }}  // end class LogoAnimator/*************************************************************** * (C) Copyright 2002 by Deitel & Associates, Inc. and         * * Prentice Hall. All Rights Reserved.                         * *                                                             * * DISCLAIMER: The authors and publisher of this book have     * * used their best efforts in preparing the book. These        * * efforts include the development, research, and testing of   * * the theories and programs to determine their effectiveness. * * The authors and publisher make no warranty of any kind,     * * expressed or implied, with regard to these programs or to   * * the documentation contained in these books. The authors     * * and publisher shall not be liable in any event for          * * incidental or consequential damages in connection with, or  * * arising out of, the furnishing, performance, or use of      * * these programs.                                             * ***************************************************************/

⌨️ 快捷键说明

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