ImageIcon não funciona. [RESOLVIDO]

5 respostas
G

Pessoal, estou com a seguinte dúvida; Meu código compila, mas não mostra as imagens, apesar de estarem no mesmo diretório.
Vejam um trecho do código, abaixo:

btProximo = new JButton(null, new ImageIcon("proximo.gif"));
btProximo.setToolTipText("Próximo Registro");
btAnterior = new JButton(null, new ImageIcon("anterior.gif"));
btAnterior.setToolTipText("Registro Anterior");

O que devo fazer, declarar os objetos ao invés de pô-los diretamente dentro do parâmetro do JButton?

Abraços,

Glauco.

5 Respostas

ViniGodoy

O melhor mesmo, com ícones fixos assim, é coloca-los dentro de um dos pacotes e usar o comando getClass().getResource() para obte-los, no lugar de usar a String com o nome. Isso permite que os ícones depois sejam colocados dentro do arquivo .jar do seu programa.

G

Vini, boa tarde!

Obrigado pela resposta!

Não entendi como utilizar a sintaxe que passou.

Tentei utilizar assim:

btProximo = new JButton(null, new ImageIcon(getClass().getResource("proximo.gif")));

Mas não funcionou, e tentei de outras maneiras, que também não resolveram.

Qual seria o modo correto de utilizar essa sintaxe, getClass().getResource()?

Obs. Já coloquei todas as imagens do projeto no mesmo pacote da classe que chama esse ícone.

ViniGodoy

Você deve especificar o caminho, a partir da raiz do seu classpath. Então, se sua classe está em br.com.guj você teria que faz:

btProximo = new JButton(null, new ImageIcon(getClass().getResource("/br/com/guj/proximo.gif")));

Só não lembro ao certo se tem aquela primeira / da esquerda ali. Se não funcionar assim, tenta tirar ela.

R

no meu jogo de poker tem bastante imageicon
www.raghyjose.net/pokercodigo.php

eu uso o image icon separado

ImageIcon paus8 = new ImageIcon(“c:/IMAGENS2/8paus.gif”);

e depois no botao

if (b == 45) {

jl2.setIcon(ouros6);

}

no caso ali é uma jlabel, mas da no mesmo.

G

ViniGodoy:
Você deve especificar o caminho, a partir da raiz do seu classpath. Então, se sua classe está em br.com.guj você teria que faz:

btProximo = new JButton(null, new ImageIcon(getClass().getResource("/br/com/guj/proximo.gif")));

Só não lembro ao certo se tem aquela primeira / da esquerda ali. Se não funcionar assim, tenta tirar ela.

Vini, Muito Obrigado!

Funcionou e consegui entender o conceito!

Segue abaixo como ficou o código!

btProximo = new JButton(new ImageIcon(getClass().getResource( "/ExemplosCap12/proximo.gif")));

Raghy, Obrigado a você, também!

Abraços,

Glauco.

Criado 22 de outubro de 2010
Ultima resposta 25 de out. de 2010
Respostas 5
Participantes 3