[quote=aloha]Minha mentalidade é de C, eu penso apenas logicamente, não consigo interpretar conceitos do java. Pra mim se funciona no eclipse teria de funcionar fora também, aprece obvio! Eu não nasci pro java mesmo, só que na faculdade o java é a linguagem escolhida pelos professores
Obrigado por enquanto![/quote]
Aloha… eu também fui programador C. O Java é tão lógico quanto o C.
É bem simples. Crie uma pasta para os recursos do seu projeto, dentro do seu classpath. Você simplesmente criar um novo pacote entre os seus fontes, mas colocar recursos (jpgs, wavs, etc) lá dentro, ao invés de código.
Vamos supor que seu pacote seja:
aloha.imagens
E que dentro dessa pasta você tenha colocado a imagem “tabuleiro.png”.
Para carregar essa imagem você faz:
BufferedImage tabuleiro = ImageIO.read(getClass().getResource("/aloha/imagens/tabuleiro.png"));
Com esse método o Java irá seguir as regras de classpath para procurar a sua imagem. Ou seja, no eclipse, ele procurará nos seus arquivos ali onde ele compilou os .class. No caso do .jar, o próprio .jar faz parte do classpath, e ele procurará lá também.
Você não pode é esperar que o construtor default de image, que aceita um “file”, faça a busca dentro do .jar para você. Ali sim, é feito para trabalhar com unidades de disco, e seria ilógico se isso fizesse uma busca dentro de um arquivo .jar.