Maison > Java > javaDidacticiel > Comment afficher un GIF animé comme arrière-plan d'un conteneur Swing ?

Comment afficher un GIF animé comme arrière-plan d'un conteneur Swing ?

Mary-Kate Olsen
Libérer: 2024-11-17 12:44:02
original
1198 Les gens l'ont consulté

How to Display an Animated GIF as a Swing Container Background?

Affichage d'un GIF animé comme arrière-plan Swing

Question

Comment un GIF animé (cycliste) peut-il être chargé et affiché comme arrière-plan d'un Conteneur Swing, par opposition à l'image statique chargée à l'aide de ImageIO.read() ou Toolkit.getImage()?

Answer

Pour obtenir un GIF animé pour une peinture personnalisée, utilisez une ImageIcon plutôt qu'ImageIO ou Toolkit. ImageIcon fournit une image animée, contrairement à l'image statique renvoyée par les autres méthodes.

L'extrait de code suivant illustre comment charger un GIF animé et l'utiliser comme arrière-plan d'un panneau :

import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.net.URL;

class ImagePanel extends JPanel {

    private Image image;

    ImagePanel(Image image) {
        this.image = image;
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image,0,0,getWidth(),getHeight(),this);
    }

    public static void main(String[] args) throws Exception {
        URL url = new URL("https://i.sstatic.net/iQFxo.gif");
        final Image image = new ImageIcon(url).getImage();
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame f = new JFrame("Image");
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setLocationByPlatform(true);

                ImagePanel imagePanel = new ImagePanel(image);
                imagePanel.setLayout(new GridLayout(5,10,10,10));
                imagePanel.setBorder(new EmptyBorder(20,20,20,20));
                for (int ii=1; ii<51; ii++) {
                    imagePanel.add(new JButton("" + ii));
                }

                f.setContentPane(imagePanel);
                f.pack();
                f.setVisible(true);
            }
        });
    }
}
Copier après la connexion

Dans ce code :

  1. Une ImageIcon est créée en utilisant le nouveau ImageIcon(url).getImage() et l'image résultante est animée.
  2. Un ImagePanel est utilisé pour étirer l'image pour l'adapter à la taille du panneau.
  3. Boutons sont ajoutés au ImagePanel pour démontrer l'arrière-plan animé.

Exécutez ce code pour voir le GIF animé affiché en arrière-plan.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal