Как заменить GIF на экране с другим в Java? - PullRequest
0 голосов
/ 06 июля 2019

Я хочу открыть загрузочный GIF на 5 секунд, а затем переключиться на другой GIF, но я не могу переключиться

Я пробовал frame.dispose (), Panel.removeAll () имножество других функций

        setSize(1366, 768);
        setLocation(0, 0);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel p = new JPanel();
        ImageIcon image = new ImageIcon("C:\\Users\\user\\Desktop\\hmi-loading.gif");
        JLabel imagelabel = new JLabel(image);
        imagelabel.setBackground(Color.BLACK);
        imagelabel.setForeground(Color.BLACK);
        p.setBackground(Color.BLACK);
        p.add(imagelabel);
        getContentPane().add(p);
        p.removeAll();
        frame.removeAll();
        p.setBackground(Color.BLACK);
        ImageIcon imagee = new ImageIcon("C:\\Users\\user\\Desktop\\kAi.gif");
        JLabel imagelabel1 = new JLabel(image);
        imagelabel1.setBackground(Color.BLACK);
        imagelabel1.setForeground(Color.BLACK);
        p.setBackground(Color.BLACK);
        p.add(imagelabel1);
        getContentPane().add(p);

Это один gif. Как добавить таймер, чтобы заменить этот таймер на другой?

Я ожидаю, что gif будет заменен надругой.GIF открывается, и это все.

1 Ответ

0 голосов
/ 06 июля 2019

Простой пример, основанный на Swing Timer API.

public class ImageView extends JFrame {

    private JPanel panel;
    private JLabel label;
    private Timer timer;

    public ImageView() {

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(640, 480);

        panel = new JPanel(new BorderLayout());
        label = new JLabel(new ImageIcon("C:\\Users\\user\\Desktop\\hmi-loading.gif"));
        panel.add(label);

        timer = new Timer(5000, new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent event) {

                label.setIcon(new ImageIcon("C:\\Users\\user\\Desktop\\kAi.gif"));
            }
        });

        timer.start();

        this.getContentPane().add(panel);
        this.setVisible(true);
    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(() -> new ImageView());
    }
}

У меня не было достаточно времени для тестирования, но этот минимальный фрагмент должен работать.

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