"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية عرض صور GIF المتحركة كخلفيات في تطبيقات Swing؟

كيفية عرض صور GIF المتحركة كخلفيات في تطبيقات Swing؟

تم النشر بتاريخ 2024-11-23
تصفح:170

How to Display Animated GIFs as Backgrounds in Swing Applications?

كيفية عرض الخلفيات المتحركة في Swing باستخدام صورة GIF متحركة

يمكن عرض صورة GIF المتحركة بسهولة في تطبيق Swing، ولكن مع تحريك الصورة الصورة كخلفية تتطلب نهجا مختلفا. لتحميل صورة متحركة لخلفية، من المثالي استخدام ImageIcon للحصول على الصورة.

يوفر ImageIcon صورة متحركة، على عكس الطرق الأخرى التي تقدم صورًا ثابتة. يوضح التعليمة البرمجية التالية كيفية تحريك خلفية لوحة تحتوي على 50 زرًا باستخدام صورة GIF متحركة:

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 

يقوم هذا الكود بإنشاء ImagePanel، الذي يقوم بتمديد الصورة المتحركة لملء حجم اللوحة. ثم يضيف 50 زرًا إلى اللوحة، مما ينتج عنه خلفية متحركة بأزرار تفاعلية.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3