我使用paintComponent()
在JPanel
的背景上繪製gif動畫圖像。 它顯示的GIF,但不動畫。 我使用java 1.5,我知道我可以使用帶有圖標的標籤。爲什麼gif動畫在paintComponent()中使用它時沒有動畫?
有沒有人知道爲什麼以及如何解決它?
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();
}
這是gif圖像。
被修改:只需添加圖像觀察者到g2d.drawImage()方法。
g2d.drawImage(imageIcon.getImage(), getWidth()/2, getHeight()/2, this);
可能的重複[在Swing中顯示動畫BG](http://stackoverflow.com/questions/10836832/show-an-animated-bg-in-swing) – 2012-07-25 12:11:22