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

📄 animationpanel.java

📁 Java程序设计技巧与开发实例附书源代码。
💻 JAVA
字号:

import java.awt.MediaTracker;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.BorderLayout;
import java.awt.Graphics;
import javax.swing.*;

public class AnimationPanel
        extends JPanel
        implements Runnable
{
    private Image images[] = new Image[9];
    private int currentImage = 0;
    private Thread thread = null;

    public AnimationPanel()
    {
        MediaTracker tracker = new MediaTracker(this);
        for (int i = 0; i < images.length; i++)
        {
            images[i] = getToolkit().getImage("smile" + i + ".gif");
            tracker.addImage(images[i], i);
        }
        try
        {
            tracker.waitForAll();
        }
        catch (InterruptedException ie)
        {
            showError("Image loading interrupted: " + ie);
        }
        if (tracker.isErrorAny())
        {
            showError("Error loading one or more images");
        }
        thread = new Thread(this);
        thread.start();
    }

    public void run()
    {
        while (true)
        {
            try
            {
                repaint();
                thread.sleep(100);
                if (currentImage >= images.length - 1)
                {
                    currentImage = 0;
                }
                else
                {
                    currentImage++;
                }
            }
            catch (InterruptedException ie)
            {
                showError("Thread interrupted: " + ie);
            }
        }
    }

    public Dimension getPreferredSize()
    {
        return new Dimension(images[0].getWidth(this),
                             images[0].getHeight(this));
    }

    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        g.drawImage(images[currentImage], 0, 0, this);
    }

    private void showError(String msg)
    {
        JOptionPane.showMessageDialog(this, msg, "Error",
                                      JOptionPane.ERROR_MESSAGE);
    }
}

⌨️ 快捷键说明

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