ImageIcon

Fala galera …
Criei um ImageIcon o qual uso em um JButton …

Crio o objeto desta forma
ImageIcon img1 = new ImageIcon(“C:Teste1.gif”);

No entanto eu nao gostaria de passar o caminho completo no construtor, gostaria de passar apenas o nome do arquivo (1.gif) já que ele se encontra no mesmo diretorio da aplicacao com o JButton q usa este ImageIcon …

valeu… :?

Não sei se entendi o que você quer, mas, por que você não faz assim:

JButton b = new JButton("Ok", new ImageIcon("Teste1.gif");

:?: já que o arquivo gif está no mesmo diretório do .java em questão, não há com o que se preocupar. Você realmente precisa de uma instância separada desse recurso?

Ou senao faz assim:


String strPath = System.getProperty("user.dir");

ImageIcon img = new ImageIcon(strPath + "figura.gif");

Deve funcionar

ate mais…

Ah Richard … era isso mesmo q eu queria

valeu

jctorelli, já que vc entendeu, me deixa entender tb :wink: !

Você não disse que a imagem e o .class que a utiliza, estão no mesmo diretório? Então! O que o exemplo q o richardpeder deu dá na mesma; a propriedade user.dir retorna o diretório atual, não é?! :shock:

Ou então eu “comi bronha” nalgum trecho do exemplo q ele deu (o que é + provável).

De qualquer forma,
Obrigado!

Caros amigos:

O exemplo que eu passei pode ser interpretado assim…digamos que vc tem um caminho grande desde a raiz ate onde esta a imagem…o strpath serviria para “ocultar” esse caminho, mas no caso, se vc colocar as imagens em uma pasta Icones por ex, vc terá que deixar ela na pasta que esta a aplicação. Acho muito util o user.dir, pois ele nao revela, no codigo, o caminho correto onde vc esta buscando a imagem.

bom, acho que eh isso…

Irei dar mais um exemplo, que falei da pasta Icones mas nao expliquei…veja soh, digamos que dentro da pasta que esta a aplicação, tem uma pasta chamada Icones com o arquivo “figura.gif”, dai vc deveria fazer assim…nao importa onde esta a pasta da aplicação…


String strPath = System.getProperty("user.dir");

ImageIcon img = new ImageIcon(strPath+"Iconesfigura.gif");

//colocando esta imagem em um JButton por exemplo

JButton botao = new JButton(img);

Acho que isso melhora minha resposta… :smiley:

Ate mais…

corrigindo uma linha… :oops:


ImageIcon img = new ImageIcon(strPath+" Iconesfigura.gif");

Agora melhorou… :wink:

Ate mais…

Cuidade. “user.dir” retorna a pasta em que a classe esta executando e não onde ela está localizada.

Por exemplo, ao executar um arquivo teste.class que se encontra em c: emp a partir do Netbeans, “user.dir” retorna “c:
etbeans3.4” (minha instalação do Netbeans)

Se, contudo, eu acessar a pasta e executar a classe, ela retorna “c: emp”.

A dica acima só funciona se for dada a garantia que o ambiente de execução esteja localizado na pasta de sua aplicação.

Como o Elvis disse… não é o ideal você dar caminhos absolutos na aplicação, só usar os nomes do arquivo mesmo “blabla.gif” ou no máximo sub-diretórios “images/blabla.gif”…

Uma dica é usar “/” ao invés de “” fica mais bunitin… :smiley: heheheh