Problema para carregar uma imagem no JLabel em um projeto maven

Boa tarde, pessoal

Estou com um problema em um projeto maven. Já tentei de tudo e até agora nada.simplesmente dá o NullPointerException. Nem via NetBeans e nem via código. Fiz uma pesquisa e lá disseram que no caso do Maven é para colocar as fotos em uma pasta chamada resources. Essa pasta fica fora da pasta java mas dentro da main, isso confere. Que tipo de arquivos é para colocar lá?

Fico no aguardo.
Atte,

Marcos Antônio

A estrutura de projetos do maven, para que ele funcione adequadamente e você não tenha que mudar configurações no pom.xml é:

projeto
|-src
|--main
|---java
|---resources
|--test
|---java
|---resources

A pasta java, obviamente, leva os códigos fonte.
A pasta resources leva os recursos que os arquivos java podem consumir (seja em teste ou em execução regular). Isso incluir arquivos de propriedades, configurações, imagens, etc.

Ocorre que, quando você executa um mvn clean install (ou package), a estrutura do projeto é lida pelo maven e tudo que está em src/main/java ou src/main/resources é considerado como se estivesse no src apenas.
Mostre o código e como está referenciando o arquivo que deseja ler.

1 curtida

No código coloquei assim:

jLabelImage.setIcon(new ImageIcon(getClass().getResource(“imagem/login.png”))).

No meu projeto está um pouco diferente. Eu criei uma pasta chamada images então coloquei a imagem lá.

Concorda comigo que se você definiu o nome da pasta como images você nunca vai achar uma imagem em um path “imagem/login.png”?

Desculpe é images mesmo. Eu digitei errado.

Como está tua estrutura de diretórios dentro do projeto?

Eu tinha uma pasta image que estava dentro de src/main/java/dev/marcos/syscommerceerp/model/image. Bom depois criei uma pasta resources em main, então ficou assim main/resources/image. Estou utilizando o NetBeans, não estou conseguindo setar a foto nem pela IDE e nem pelo código.

Pela IDE vc tem que clicar na pasta e aí aparece os icones. Pode parecer besteira, mas comigo funcionou:

Abre as opções, clica na pasta que vc quer:

image

e os icones vão aparecer.

Código:

//deixa a primeira barra ("/.....)
suaLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pasta/nomeDoIcon.extensão")));
1 curtida

Blz, vou testar aqui, embora já tenha tentado assim. Talvez tenha feito da forma errada.

eu faço desse jeito e da o erro do meu post