Swing 应用程序无法正确显示 gif 背景

Posted

技术标签:

【中文标题】Swing 应用程序无法正确显示 gif 背景【英文标题】:Swing application can't display a gif background properly 【发布时间】:2021-12-26 17:56:21 【问题描述】:

所以我试图在我的 java 应用程序中显示 GIF 背景,但 GIF 似乎无法正确显示 That's the GIF 但是当我在我的应用程序中显示它时,像素到处飞,它看起来不像原始的 GIF

代码:

public class PlayerPanel extends JPanel

    Player player ;
    Image img;
    boolean moveFlag=false;
    private HashMap<Character,Integer> keyMap=new HashMap<>();

    public PlayerPanel()
    
        img = (new ImageIcon("assets\\space.gif")).getImage(); //background
        player = new Player(this);

        keyMap.put('w',0);
        keyMap.put('s',0);
        keyMap.put('a',0);
        keyMap.put('d',0);

        addKeyListener(new KA());
        setFocusable(true);
    


    public void paintComponent(Graphics g)
    
        super.paintComponent(g);

        g.drawImage(img,0,0,getWidth(),getHeight(),null);
    

主要:

public class Main 

    public static void main(String[] args) throws InterruptedException 
        JFrame f=new JFrame("Asteroids Game");
        PlayerPanel playerPanel=new PlayerPanel();
        f.add(playerPanel);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(1024,700);
        f.setResizable(true);
        f.setVisible(true);
        f.setFocusable(false);

【问题讨论】:

忘记添加paintComponent() 谢谢! 【参考方案1】:

显然是尺寸问题,图片尺寸有点小 无论如何,我设法通过将图像调整为更大的分辨率来修复错误

【讨论】:

将图像添加到 JLabel 中,标签将按照实际大小绘制 gif。

以上是关于Swing 应用程序无法正确显示 gif 背景的主要内容,如果未能解决你的问题,请参考以下文章

如何使这个 GIF 正确显示?

Linux 中的全屏 Swing 框架无法正确对焦(Windows 很好)

在 Swing 中显示动画 BG

我想在使用 JFC/Swing 工具包的应用程序中使用动画 GIF 图像。我对这个工具包感到困惑

IOS支持显示GIF动画图片吗? [复制]

使用动画背景