[RESOLVIDO] ImageIcon, de qual forma criar?

8 respostas
J

Olá pessoal do fórum,

estou com uma dúvida. Qual a diferença entre:
new ImageIcon(Images.class.getClassLoader().getResource("Images/ajuda.gif"));  
e

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

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

8 Respostas

D

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

J

Valeu davidbuzatto por esclarecer essa dúvida :smiley:

Abraço

J

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

D

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

“imagens” deve ser um pacote.

[]´s

V

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

J
Brother eu fiz assim: Primeiro eu criei um método que carrega as imagens:
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;
	}
e na hora de chamar fica assim:
JButton btnLimpar = new JButton("Limpar" , getImagem("009.png"));

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

Funciona legal

Abraço

J

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:

J

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

Criado 22 de setembro de 2010
Ultima resposta 5 de out. de 2010
Respostas 8
Participantes 4