Недавно я решил начать изучать, как делать 2D-игры с JAVA (eclipse), поэтому я нашел учебник онлайн, в котором показано, как сделать игру superMari с java, я написал тот же самый код, который он написал, и Я шаг за шагом последовал за тем, что он сделал, о чем было не о чем поговорить, к сожалению, он показывает код, после исключения, окно с двумя изображениями, в то время как мое показывает только окно без изображений, я гарантирую, что я импортировал два изображения и помещал их в один пакет, чтобы избежать всех проблем, но он все еще ничего не показывает.Изображения не отображаются в моей программе java
мой код имеет два класса, «основной» и «сцена», вот он, надеюсь, кто-то найдет решение для меня, спасибо вам, ребята!
Main.java:
package AiMEUR.AMiN.jeu;
import javax.swing.JFrame;
public class Main {
public static Scene scene;
public static void main(String[] args) {
JFrame fenetre = new JFrame("Naruto in mario World!!");
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.setSize(700, 360);
fenetre.setLocationRelativeTo(null);
fenetre.setResizable(false);
fenetre.setAlwaysOnTop(true);
scene = new Scene();
fenetre.setContentPane(scene);
fenetre.setVisible(true);
}
}
Scene.java:
package AiMEUR.AMiN.jeu;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class Scene extends JPanel{
private ImageIcon icoFond;
private Image imgFond1;
private ImageIcon icoMario;
private Image imgMario;
private int xFond1;
public Scene(){
super();
this.xFond1 = -50;
icoFond = new ImageIcon(getClass().getResource("/Images/fond.gif"));
this.imgFond1 = this.icoFond.getImage();
icoMario = new ImageIcon(getClass().getResource("/Images/1.png"));
this.imgMario = this.icoMario.getImage();
// paintComponent(this.getGraphics());
}
public void paintCompenent(Graphics g){
super.paintComponent(g);
Graphics g2 = (Graphics2D)g;
g2.drawImage(this.imgFond1, this.xFond1, 0, null);
g2.drawImage(imgMario, 300, 245, null);
}
}
Я хотел бы проверить, что 'icoFond = новый ImageIcon (getClass(). getResource ("/ Images/fond.gif")); 'и другая аналогичная строка фактически загружают ваши изображения. –
извините! но я не понял, что вы имеете в виду! вы думаете, я должен изменить эту строку кода, на которую вы ссылались? –
Нет, это линия, которую вы должны проверить. Попробуйте это позже: 'int status = icoFond.getImageLoadStatus()' - это должен быть один из «MediaTracker.ABORTED», 'MediaTracker.ERRORED' или' MediaTracker.COMPLETE'. См. API по адресу https://docs.oracle.com/javase/7/docs/api/javax/swing/ImageIcon.html –