[ RESOLVIDO ] Meus ícones não estão sendo add ao .JAR

Estou com um problema na hora de compilar minha aplicação.

Estou usando Apache NetBeans 11.0 Java 8

Estou tendo problemas na hora de setar uma imagem em um JLabel.

Me retorna Expection in thread “AWT-EventQueue-0” java.lang.NullPointerException at javax.swing.ImageIcon.(ImageIcon:217) at br.house.main.mainBotPainel.initComponents(mainBotPainel.java:63) …

Todas as imagens foram add na pasta assets. Segue em anexo 2 prints.

Como nada funcionava, peguei o .JAR e mandei abrir com winRAR e dentro dele não constava a pasta assets, ou seja, ela n foi encapsulada junto com o JAR pelo Netbeans. O q estou fazendo de errado?

Você ainda está usando o getResource para tentar carregar uma imagem de dentro do JAR.
Para ler arquivos que estão dentro do JAR, tem que usar o getResourceAsStream.

Clica na aba Files e mostra como está sua estrutura de pastas.

Como já foi explicado neste tópico, o método getResource retorna um objeto do tipo URL.
URL só é válido para apontar caminhos no sistema de arquivos do seu sistema operacional ou então endereços na rede.

Quando você quer ler um recurso que está dentro de um JAR, não adianta utilizar o getResource pois ele vai retornar null.
Neste caso tem que utilizar o getResourceAsStream, para ler a imagem de dentro do JAR.

1 curtida

Já fiz a alteração em questão, e mesmo assim sem nenho resultado.
Mas tentei novamente.
Removi o código gerado pelo NetBeans e criei o método loadComponents() para carregar especificamente esse imagem no label.

Retornou:
Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1348)
at br.house.main.mainBotPainel.loadComponents(mainBotPainel.java:46)

Abri o JAR gerado com o winRAR e não consta a pasta ‘assets’. Pq o NetBeans não esta add ela ao JAR?

Faz favor de mandar a árvore expandida da aba Files, pra gente ver todas as pastas e arquivos que há no seu projeto.

Legal, seu problema não é o NetBeans muito menos o Java mas sim sua estrutura de pastas.
Este é um projeto Maven, então você tem que seguir uma certa estrutura de pastas (pra não ficar alterando pom.xml).

Seus fontes Java já estão no lugar certo, que é a seguinte pasta:

src\main\java

Já suas imagens e outros resources precisam estar na seguinte pasta:

src\main\resources

Então cria essa pasta e move a pasta assets pra dentro dela que vai funcionar.

1 curtida

Funcionou! Finalmente!!! Te devo algumas cervejas kkkkkkk

2 curtidas