Приложение Swing не может правильно отображать gif-фон

#java #swing #jframe #jpanel #gif

Вопрос:

Поэтому я пытаюсь отобразить GIF-фон в своем java-приложении, но GIF, похоже, отображается неправильно, это GIF, но когда я отображаю его в своем приложении, пиксели просто летают повсюду, и он совсем не похож на оригинальный GIF

Код:

 public class PlayerPanel extends JPanel {  Player player ;  Image img;  boolean moveFlag=false;  private HashMaplt;Character,Integergt; keyMap=new HashMaplt;gt;();   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); }  

Комментарии:

1. забыл добавить paintComponent() спасибо!

Ответ №1:

Очевидно, это была проблема с размером, и размер изображения в любом случае был небольшим, мне удалось исправить ошибку, изменив размер изображения до большего разрешения

Комментарии:

1. Добавьте изображение в JLabel, и метка раскрасит gif в его фактическом размере.