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 …
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?
jctorelli, já que vc entendeu, me deixa entender tb !
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).
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.
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);
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… heheheh