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 背景的主要内容,如果未能解决你的问题,请参考以下文章
Linux 中的全屏 Swing 框架无法正确对焦(Windows 很好)