Maison > Java > javaDidacticiel > Comment afficher des GIF animés comme arrière-plans dans les applications Swing ?

Comment afficher des GIF animés comme arrière-plans dans les applications Swing ?

Patricia Arquette
Libérer: 2024-11-16 11:41:02
original
937 Les gens l'ont consulté

How to Display Animated GIFs as Backgrounds in Swing Applications?

Comment afficher des arrière-plans animés dans Swing avec un GIF animé

Un GIF animé peut être affiché sans effort dans une application Swing, mais animer un l’image comme arrière-plan nécessite une approche différente. Pour charger une image animée pour un arrière-plan, il est idéal d'utiliser une ImageIcon pour obtenir l'image.

ImageIcon fournit une image animée, contrairement à d'autres méthodes qui fournissent des images statiques. Le code suivant montre comment animer l'arrière-plan d'un panneau avec 50 boutons à l'aide d'un GIF animé :

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

Ce code crée un ImagePanel, qui étend l'image animée pour remplir la taille du panneau. Il ajoute ensuite 50 boutons au panneau, ce qui donne un arrière-plan animé avec des boutons interactifs.

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!

source:php.cn
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