Wie kann ein animiertes (zyklisches) GIF geladen und als Hintergrund für einen Swing angezeigt werden? Swing-Container, im Gegensatz zum statischen Bild, das mit ImageIO.read() oder geladen wird Toolkit.getImage()?
Um ein animiertes GIF für benutzerdefiniertes Malen zu erhalten, verwenden Sie ein ImageIcon anstelle von ImageIO oder Toolkit. ImageIcon stellt im Gegensatz zu dem von den anderen Methoden zurückgegebenen statischen Bild ein animiertes Bild bereit.
Der folgende Codeausschnitt veranschaulicht, wie ein animiertes GIF geladen und als Hintergrund für ein Panel verwendet wird:
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); } }); } }
In diesem Code:
Führen Sie diesen Code aus, um ihn anzuzeigen Das animierte GIF wird als Hintergrund angezeigt.
Das obige ist der detaillierte Inhalt vonWie zeige ich ein animiertes GIF als Swing-Container-Hintergrund an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!