Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Uknown Source

  1. #1

    Uknown Source

    Ho un problema con il caricamento di immagini
    Qui c'è il codice
    codice:
    public static BufferedImage getSprite(String file,Object obj)
        {
            BufferedImage sprite = null;
            try
            {
                sprite=ImageIO.read(obj.getClass().getResource(file));
            }
            catch(Exception e)
            {
                System.out.println("File doesn't exist");
            }
            return sprite;
        }
    Questo è il codice che da problemi
    codice:
    public class Grass
    {
        
        BufferedImage grass=SpriteHandler.getSprite("/Resources/grass_tile.gif",this);
        
            
        
        public void render(Graphics g)
        {
            
            g.drawImage(grass, 0, 0, null);
        }
    }
    Poi tutto questo l'ho aggiunto alla classe "principale" con Grass grass=new Grass();

    Quando avvio il programma dice
    codice:
    Exception in thread "Thread-2" java.lang.NullPointerException
        at Game.render(Game.java:99)
        at Game.run(Game.java:75)
        at java.lang.Thread.run(Unknown Source)
    Qualcuno può spiegarmi perchè?, Anche perchè utilizzando lo stesso metodo getSprite in altre classi non da problemi
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Vinci321 Visualizza il messaggio
    Quando avvio il programma dice
    codice:
    Exception in thread "Thread-2" java.lang.NullPointerException
        at Game.render(Game.java:99)
        at Game.run(Game.java:75)
        at java.lang.Thread.run(Unknown Source)
    Qualcuno può spiegarmi perchè?
    Quando si usa il getResource di Class, se si passa una specifica tipo "pippo", questa è relativa al package della classe. Ma se passi es. "/pippo" (slash iniziale!), non conta più il package della classe. Il pippo è cercato direttamente "alla radice" lungo il classpath.
    Quindi hai in classpath una cartella che contiene la Resources? Il punto è lì.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Si alla fino ho risolto
    Avevo messo la chiamata nel metodo Main della classe principale
    ho semplicemente messo la chiamata all'interno della classe fuori dal metodo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.