Problema para carregar uma imagem no JLabel em um projeto maven

9 respostas
swingjava
marcoslogan

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

9 Respostas

darlan_machado

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.

marcoslogan

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á.

darlan_machado

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

marcoslogan

Desculpe é images mesmo. Eu digitei errado.

darlan_machado

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

marcoslogan

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.

rodriguesabner

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")));
marcoslogan

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

Gabriel_Hakozaki

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

Criado 20 de janeiro de 2020
Ultima resposta 23 de nov. de 2020
Respostas 9
Participantes 4