#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 в его фактическом размере.