Pergunta

Estou tentando carregar um arquivo de imagem (GIF) que é armazenado localmente no mesmo diretório do meu projeto Eclipse Java:

ref é o caminho relativo onde a imagem GIF é armazenada.

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);
       }
}

O código do cliente que usa o método acima é:

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

No espaço de trabalho do Eclipse e dentro do meu diretório de projeto, tenho uma pasta spritescom as imagens GIF armazenadas lá. Mas o código do cliente sempre retorna: Can't find ref: sprites/ship.gif

Estou fazendo algo errado na minha abordagem acima para carregar a imagem do GIF? Existe uma maneira mais direta de fazer uma pesquisa de arquivo neste caso?

Muito obrigado por qualquer conselho.

Foi útil?

Solução

o getResource() Método pesquisa o seu Classpath Para encontrar o arquivo, provavelmente o sprites O diretório não está no seu caminho de classe.

Experimente o Open Your Project Properties -> Java Build Path, selecione Libraries guia e clique em Add Class Folder botão em seguida, selecione o diretório pai de sprites.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top