IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Problème d'affichage d'une image GIF


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Points : 139
    Points
    139
    Par défaut Problème d'affichage d'une image GIF
    Dans mon programme, j'ai une fonction qui parcours la grille pour l'afficher, et notamment teste si la case testée contient de la nourriture. Jusqu'à maintenant, je représentait la nourriture par un JLabel avec la quantité de nourriture en texte, et je mettait ce label dans un Jpanel. J'ai voulu remplacer ces jlabels de textes par des gifs, et je récupère une NullPointerException. Voici les codes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void identifierContenuCase(int i,int j){
    	p=new JPanel();
    	l=new JLabel();
    	Case c=grille.grille[i][j];
    	if(c.contientNour())
    		{
    			//t=" "+c.nourriture.getNourriture(); //affichage d'avant
    			p.add(afficherNourriture(i,j,largeur)); //nouvel affichage (c'est ici que sort l'exception)
    			p.setBackground(jaune);
    		}
    et dans la méthode afficherNourriture, c'est sur la ligne --pan = new ImageIcon(url);-- appellée que sort l'exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    public JLabel afficherNourriture(int i,int j,int l){
    			int t=grille.grille[i][j].nourriture.getNourriture();
    			URL url=null; 
    			ImageIcon pan=null;
    		    JLabel lab=null;
    			switch(t){
    			case 5 : {
    				if(l<=8)
    					url= getClass().getResource("/evolution/bouffe/5.gif");
    				else url= getClass().getResource("/evolution/bouffe/5p.gif");
    				pan = new ImageIcon(url);
    				lab = new JLabel(pan);
    				return lab;
    			}
    			case 10 :{
    				if(l<=8)
    					url= getClass().getResource("/evolution/bouffe/10.gif");
    				else url= getClass().getResource("/evolution/bouffe/10p.gif");
    				pan = new ImageIcon(url);
    				lab = new JLabel(pan);
    				return lab;
    			}
    			case 15 :{
    				if(l<=8)
    					url= getClass().getResource("/evolution/bouffe/15.gif");
    				else url= getClass().getResource("/evolution/bouffe/15p.gif");
    				pan = new ImageIcon(url);
    				lab = new JLabel(pan);
    				return lab;
    			}
    			case 20 :{
    				if(l<=8)
    					url= getClass().getResource("/evolution/bouffe/20.gif");
    				else url= getClass().getResource("/evolution/bouffe/20p.gif");
    				pan = new ImageIcon(url);
    				lab = new JLabel(pan);
    				return lab;
    			}
    			case 25 :{
    				if(l<=8)
    					url= getClass().getResource("/evolution/bouffe/25.gif");
    				else url= getClass().getResource("/evolution/bouffe/25p.gif");
    				pan = new ImageIcon(url);
    				lab = new JLabel(pan);
    				return lab;
    			}
    			case 30 :{
    				if(l<=8)
    					url= getClass().getResource("/evolution/bouffe/30.gif");
    				else url= getClass().getResource("/evolution/bouffe/30p.gif");
    				pan = new ImageIcon(url);
    				lab = new JLabel(pan);
    				return lab;
    			}
    			case 35 :{
    				if(l<=8)
    					url= getClass().getResource("/evolution/bouffe/35.gif");
    				else url= getClass().getResource("/evolution/bouffe/35p.gif");
    				pan = new ImageIcon(url);
    				lab = new JLabel(pan);
    				return lab;
    			}
    			case 40 :{
    				if(l<=8)
    					url= getClass().getResource("/evolution/bouffe/40.gif");
    				else url= getClass().getResource("/evolution/bouffe/40p.gif");
    				pan = new ImageIcon(url);
    				lab = new JLabel(pan);
    				return lab;
    			}
    			case 45 :{
    				if(l<=8)
    					url= getClass().getResource("/evolution/bouffe/45.gif");
    				else url= getClass().getResource("/evolution/bouffe/45p.gif");
    				pan = new ImageIcon(url);
    				lab = new JLabel(pan);
    				return lab;
    			}
    			case 50 :{
    				if(l<=8)
    					url= getClass().getResource("/evolution/bouffe/50.gif");
    				else url= getClass().getResource("/evolution/bouffe/50p.gif");
    				pan = new ImageIcon(url);
    				lab = new JLabel(pan);
    				return lab;
    			}
    			default : return lab;
    			}
    		}
    J'ai fait cette 2è méthode pour éviter d'avoir à créer tous les labels à chaque appel de la méthode afficherContenu(), sachant que celle-ci est appellée n² fois pour une grille de largeur n, et ce très régulièrement dans le programme. merci pour votre aide.

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Et bien d'après ton code à première vue sous toutes réserves et en présence de mon avocat cela signifie simplement que t dans la méthode afficherNourriture n'est égal ni à 5, ni à 10, ni 15, 20, 25, 30, 35, 40, 45, ou 50 !
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

Discussions similaires

  1. Problème d'affichage d'une image
    Par parano dans le forum C++
    Réponses: 12
    Dernier message: 21/03/2007, 18h57
  2. Affichage d'une image gif
    Par FunkyBearz dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 08/02/2007, 12h22
  3. Réponses: 12
    Dernier message: 09/06/2006, 07h27
  4. problème d'affichage d'une image au format DDS (24-bit)
    Par thunderbird dans le forum DirectX
    Réponses: 2
    Dernier message: 22/03/2006, 11h00
  5. [GD] Problème d'affichage d'une image avec gd2
    Par turini dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo