Domanda

Sto cercando di caricare un file di immagine (GIF) che viene memorizzato localmente nella stessa directory come il mio progetto Java Eclipse:

ref è il percorso relativo in cui è memorizzata l'immagine GIF.

public Sprite getSprite(String ref) {
      BufferedImage sourceImage = null;
      try {
        URL url = this.getClass().getClassLoader().getResource(ref);        
        if (url == null) {
        fail("Can't find ref: "+ref);
       }
       sourceImage = ImageIO.read(url);
       } catch (IOException e) {
        fail("Failed to load: "+ref);
       }
}

Il codice client che utilizza il metodo di cui sopra è:

public Entity(String ref,int x,int y) {
        this.sprite = ResourceManager.getSprite("sprites/alien.gif");
        this.x = x;
        this.y = y;
    }

Nello spazio di lavoro Eclipse e all'interno del mio directory del progetto Ho una cartella spriteswith le immagini gif memorizzate. Ma il codice del client ritorna sempre: Can't find ref: sprites/ship.gif

Sto facendo qualcosa di sbagliato nel mio approccio sopra per caricare l'immagine gif? Esiste un modo migliore e più semplice per fare un file di ricerca in questo caso?

Molte grazie per qualsiasi consiglio.

È stato utile?

Soluzione

Il metodo getResource() cerca il vostro classpath per trovare il file, probabilmente il sprite di directory non è nel classpath.

Prova aprire le proprietà del progetto -.> Java Build Path, selezionare la scheda Libraries e fare clic sul pulsante Add Class Folder quindi selezionare la directory padre di sprite

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top