Почему gif-анимация не анимируется при использовании в PaintComponent ()?

Я использую paintComponent()для рисования анимированного gif-изображения на фоне JPanel. Он показывает GIF, но не анимирует. Я использую Java 1.5 и знаю, что могу использовать ярлык со значком.

Кто-нибудь знает, почему и как это исправить?

    private static class CirclePanel extends JPanel {

    ImageIcon imageIcon = new ImageIcon(BarcodeModel.class.getResource("verify.gif"));
    Point point = f.getLocation();
    protected void paintComponent(Graphics g) {
        Graphics gc = g.create();
        Graphics2D g2d = (Graphics2D) g.create();
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f));
        g2d.setColor(Color.BLUE);
        g2d.drawImage(imageIcon.getImage(), getWidth() / 2, getHeight() / 2, null);
        g2d.drawRect(0, 0, getWidth(), getHeight());
        g2d.setStroke(new BasicStroke(10f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER));
        g2d.setFont(g.getFont().deriveFont(Font.BOLD | Font.ITALIC,15f));
        g2d.drawString("Wait Please...",getWidth()/2-imageIcon.getIconHeight()/3,getHeight()/2+imageIcon.getIconHeight()+15);

        g2d.dispose();

}

Это гифка.
enter image description here

Отредактировано:просто добавьте наблюдатель изображения в метод g2d.drawImage ().

 g2d.drawImage(imageIcon.getImage(), getWidth() / 2, getHeight() / 2, this);
7
задан itro 25 July 2012 в 12:21
поделиться