애니메이션(자전거) GIF를 어떻게 로드하고 스윙 배경으로 표시할 수 있습니까? ImageIO.read()를 사용하여 로드된 정적 이미지와 반대되는 스윙 컨테이너 또는 Toolkit.getImage()?
맞춤 페인팅을 위한 애니메이션 GIF를 얻으려면 ImageIO 또는 Toolkit 대신 ImageIcon을 사용하세요. 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를 스윙 컨테이너 배경으로 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!