Erreur d'affichage d'image java

Fermé
udiudi Messages postés 6 Date d'inscription vendredi 1 mai 2015 Statut Membre Dernière intervention 2 juin 2015 - Modifié par KX le 1/05/2015 à 15:55
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 1 mai 2015 à 16:29
Bonjour,

je suis débutant en java et je souhaiterais tout simplement afficher une image sur ma fenêtre j'ai créé 2 class ci dessus mais l'image ne s'affiche pas!
dans la class gamepanel j'ai un warning sur cette logne: "public class GamePanel extends JPanel{"

la premiere class main:

package game;

import javax.swing.JFrame;

public class Main {
 public static void main(String[] args){
  JFrame frame= new JFrame("Jeu video");
 
  frame.setTitle("Fenêtre fond");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //qd on ferme prog arrete de tourner
  frame.setSize(1085, 724);
  frame.setLocationRelativeTo(null); //objet positionné au centre
  frame.add(new GamePanel());
  frame.setVisible(true); //pr que fenetre s'affiche
  
 }

}



la seconde classe:GamePanel

package game;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JPanel;


public class GamePanel extends JPanel{
 private Image img; //fond
 public int x; // x du fond et non du joueur
 public int addx;
 public static GamePanel getMainPanel;
 
 
 public GamePanel(){
  
 setFocusable (true);
 requestFocus();
    ImageIcon i=new ImageIcon(getClass().getResource("/res/thumb_fond montgne_1024.jpg"));
    img=i.getImage();
    x=0; //initialisation, le joueur ne bouge pas
    addx=0;
    getMainPanel=this; //pr qd on est dans autre class renvoie ce qu'on fait la
    }
 
 public void paint(Graphics g) { //pr dessiner image
  super.paint(g);
  Graphics2D g2=(Graphics2D)g;
  
  g2.drawImage(img,x,0,null);
  
 }
 
 public void updatePosition(){
  x=x+addx; //le personnage n'avance pas mais l'image va vers l'arrière
 }
}
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
1 mai 2015 à 16:03
Bonjour,

Ce n'est qu'un warning, rien de problématique pour ton programme.

Tu peux rajouter cette ligne pour résoudre le warning :
private static final long serialVersionUID = 1L;

Voir les explications ici :
https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html
0
udiudi Messages postés 6 Date d'inscription vendredi 1 mai 2015 Statut Membre Dernière intervention 2 juin 2015
1 mai 2015 à 16:08
merci de ta réponse, je pense en effet que le probleme ne vient pas de la puisque meme en rajoutant cette ligne l'image ne s'affiche pas sur ma fentre
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
1 mai 2015 à 16:17
Est-ce que tu as un message d'erreur, si oui lequel ?

Je pense que l'accès à l'image peut planter, essaye avec :
img=ImageIO.read(new File("/res/thumb_fond montgne_1024.jpg"));
0
udiudi Messages postés 6 Date d'inscription vendredi 1 mai 2015 Statut Membre Dernière intervention 2 juin 2015
1 mai 2015 à 16:27
j'ai ce message d'erreur:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:181)
at game.GamePanel.<init>(GamePanel.java:22)
at game.Main.main(Main.java:14)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > udiudi Messages postés 6 Date d'inscription vendredi 1 mai 2015 Statut Membre Dernière intervention 2 juin 2015
1 mai 2015 à 16:29
C'est que Java n'arrive pas à accéder à l'image, essayes mon code.
0