如何載入動畫(循環)GIF 並將其顯示為Swing 背景Swing 容器,而不是使用ImageIO.read() 或Toolkit.getImage() 載入的靜態影像?
要取得用於自訂繪畫的動畫 GIF,請使用 ImageIcon 而不是 ImageIO 或 Toolkit。 ImageIcon 提供了一個動畫圖像,與其他方法傳回的靜態圖像不同。
以下程式碼片段說明如何載入動畫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<51; ii++) { imagePanel.add(new JButton("" + ii)); } f.setContentPane(imagePanel); f.pack(); f.setVisible(true); } }); } }
在此程式碼中:
執行此程式碼即可查看顯示為背景的動畫 GIF。
以上是如何將 GIF 動畫顯示為 Swing 容器背景?的詳細內容。更多資訊請關注PHP中文網其他相關文章!