Animierte GIFs als Swing-Hintergründe anzeigen
In Java Swing kann die Anzeige animierter GIFs als Hintergrundbilder im Vergleich zur Anzeige in Beschriftungen eine Herausforderung darstellen oder HTML-Komponenten. Um statische Bilder als Hintergründe zu laden, werden normalerweise ImageIO.read() oder Toolkit.getImage() verwendet, aber diese Methoden können die Animation nicht erfassen.
Verwenden von ImageIcon zum Erhalten animierter GIFs
Um animierte GIFs in Swing-Hintergründen anzuzeigen, kann ein ImageIcon verwendet werden. Während mit den oben genannten Methoden erhaltene Bilder statisch bleiben, werden die über ein ImageIcon erhaltenen Bilder animiert.
Codebeispiel
Der folgende Codeausschnitt zeigt, wie man ein animiertes GIF als hinzufügt der Hintergrund eines Containers mit Schaltflächen:
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:
Das obige ist der detaillierte Inhalt vonWie zeige ich animierte GIFs als Hintergrund in Java Swing an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!