[RESOLVIDO] ImageIcon, de qual forma criar?

Olá pessoal do fórum,

estou com uma dúvida. Qual a diferença entre:

[code]
new ImageIcon(Images.class.getClassLoader().getResource(“Images/ajuda.gif”));
e

Icon image = new ImageIcon("./imagens/006.gif");[/code]

Eu uso a segunda opção para colocar imagens no botões de minha aplicação, mas vejo vários
códigos que criam imagens do primeiro jeito. Qual a diferença entre os dois??

Grato desde já

onh

A diferença é que enquanto no primeiro é usado o construtor que recebe uma URL, no segundo é usado o construtor que recebe uma String.
Na prática, o primeiro vai funcionar caso você crie um .jar da sua aplicação, enquanto o segundo não vai, a não ser que a pasta das imagens estejam no mesmo diretório do .jar.

Eu particularmente faço assim:

Onde “/caminho/da/imagem/dentro/do/jar/” é o caminho completo da imagem dentro do jar, sendo este caminho formato pelos pacotes.

Com isso, você pode armazenar suas imagens dentro do projeto, não precisando ficar copiando a pasta de imagens para lá e para cá.

[]´s

Valeu davidbuzatto por esclarecer essa dúvida :smiley:

Abraço

Amigo, eu tentei fazer desse jeito:

ImageIcon icon = new ImageIcon(getClass().getResource("/imagens/014.png")); menuConf = new JMenuItem("Configurar Conexão",icon);

mas tá dando um java.lang.NullPointerException. Eu criei uma pasta chamada imagens
dentro do diretório do projeto e coloquei a imagem dentro dele. O que eu tô fazendo errado??

Grato desde já.

Jonh

[quote=jonhzihnhoOo]Amigo, eu tentei fazer desse jeito:

ImageIcon icon = new ImageIcon(getClass().getResource("/imagens/014.png")); menuConf = new JMenuItem("Configurar Conexão",icon);

mas tá dando um java.lang.NullPointerException. Eu criei uma pasta chamada imagens
dentro do diretório do projeto e coloquei a imagem dentro dele. O que eu tô fazendo errado??

Grato desde já.

Jonh
[/quote]

“imagens” deve ser um pacote.

[]´s

então crio um pacote com um nome qualquer e dentro desse pacote , coloco minhas imagens ?

Brother eu fiz assim:
Primeiro eu criei um método que carrega as imagens:

[code]private ImageIcon getImagem(String nome){

	String caminhoDaImagem = "br/com/Imagens/" + nome;
	ClassLoader classLoader = this.getClass().getClassLoader();
	ImageIcon icone = new ImageIcon(classLoader.getResource(caminhoDaImagem));
	return icone;
}[/code]

e na hora de chamar fica assim:

Só passo o nome da imagem como parametro. As imagens ficam em um pacote:
MEU_PROJETO/src/br/com/Imagens

Funciona legal

Abraço

Bom dia Pessoas,

Quando eu gero o .jar do meu projeto, o .jar dos icones não está indo junto e não consigo executar meu projeto fora do NetBeans. Why my god? :cry: :cry: :cry:

Depende onde vc colocou suas imagens. Se vc criou a seguinte estrutura:

SEU_PROJETO/imagens/minhas_imagens_aqui

Desse jeito não vai funcionar na hora exportar, pois as imagens devem estar dentro de package tb pra aparecem depois de exportadas.
Vc tem duas opções:

1- Deixar o .jar dentro da pasta do projeto (não muito aconselhado). Eu mesmo fazia isso nos primeiros projetos com imagens.

OU

2 - Colocar as imagens dentro de um package tb;

MEU_PROJETO --src --br --com --DAO //minhas classes DAO --Transfer //minhas classes Transfer --Frames //minhas classes da parte visual da aplicação --Imagens //minhas imagens

Essa é a estrutura ki eu uso nos meus projetos. Eu uso o eclipse, mas vc adapta pro NetBeans. O que importa vc saber
que as imagens [i]também deve estar em um pacoate[/i]

Abraço