У меня есть код, который должен делать анимацию игрока, ходить, но по какой-то причине он не работает. Это мой код:Анимация изображения .GIF на JPanel
import javax.swing.*;
import java.awt.*;
/**
* Created by evengultvedt on 14.02.14.
*/
import javax.swing.*;
import java.awt.*;
//The board class, which the drawing is on
class Board extends JPanel {
//The image of the player
private Image imgPlayer;
public Board() {
setPreferredSize(new Dimension(400, 400));
setBackground(Color.WHITE);
setVisible(true);
//getting the player.gif file
ImageIcon player = new ImageIcon("player.gif");
//and put in the imgPlayer variable
imgPlayer = player.getImage();
}
public void paintComponent(Graphics graphics) {
Graphics2D graphics2D = (Graphics2D) graphics;
//this doesn't work
graphics2D.drawImage(imgPlayer, 10, 10, 100, 100, null);
//this works
graphics2D.drawString("Test drawing", 120, 120);
}
}
//The JFrame to put the panel on
class AnimatePlayer extends JFrame{
public AnimatePlayer() {
Board board = new Board();
add(board);
setTitle("PlayerTestAnimation");
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(400, 400);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new AnimatePlayer();
}
});
}
}
Файл player.gif два изображения в одном файле, и сохраняется в том же каталоге, что и файл Java.
Любая помощь приветствуется, спасибо. И мне жаль, что вы отправляете только код, но я не знаю, какая еще информация вам нужна. Пожалуйста, спросите, есть ли что-то.
Как примечание вызова 'super.paintComponent()' в первой строке в этом переопределение метода – nachokk
Что не работает? Изображение не отображается? –
Да, он ничего не показывает только пустую рамку – XBullet123