Java Swing / AWT с setIcon Gif Animated High Load - PullRequest
0 голосов
/ 29 октября 2011

У меня есть 1 одно Java-приложение .ТОЛЬКО содержит 1 JMenu с 48 JMenuItem (s) .Каждый JMenuItems я устанавливаю значок с анимированным GIF .

У меня нет проблем с его созданием.И у меня тоже нет проблем при запуске.Но проблема возникла, когда я запустил его, а затем просмотр JMenuItem.Моя GIF (s) анимация , кажется, потребляет ПК Процесс очень высок!А анимация, кажется, прыгает слишком быстро!Это не обычная частота кадров анимации, жесткая.

Так что в любое время, когда я запускаю приложение Java, а затем пытается JMenuItem , Процесс ЦП получаетвыше ...!

Посмотрите на этот предварительный просмотр: Это происходит, когда запускается мое java-приложение.Какой лучший способ решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 29 октября 2011

Какой результат вы получите от этого SSCCE? Моя система достигает пика до 40 при запуске, а затем в среднем достигает 20-30. Рендеринг анимированных GIF-файлов несколько прерывистый.

import java.awt.*;
import javax.swing.*;

class Gif48 {

    public static void main(String[] args)  {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                String url = "http://1point1c.org/gif/thum/plnttm.gif";
                int w = 12;
                int h = 4;
                JPanel p = new JPanel(new GridLayout(h,w,2,2));
                String pre = "<html><body><img src='";
                String post = "'>";
                for (int ii=0; ii<w*h; ii++) {
                    JLabel l = new JLabel(
                        pre + url + post );
                    l.setBackground(Color.BLACK);
                    l.setOpaque(true);
                    p.add(l);
                }
                JOptionPane.showMessageDialog(null, p);
            }
        });
    }
}

Какой лучший способ решить эту проблему?

Не используйте анимированные GIF-файлы в элементах управления графическим интерфейсом.

1 голос
/ 11 ноября 2011

Я нашел решения, ребята! Анимация GIF имеет много кадров. В каждом кадре у них свое время. Когда я снова открыл один файл анимации GIF, я ясно увидел, что проблема заключается в частоте кадров 0 раз. Теперь я должен изменить его до чуть выше 0,1 частоты кадров, вот и все проблемы решены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...