Olá pessoal, tudo bem?
Eu tenho um JFrame com uma imagem de fundo(background), que funciona corretamente, mas eu gostaria de saber se é possível passar um caminho “genérico” para imagem…
Tipo no lugar disso…
Caso seja uma imagem “fixa”, podes usar para carregar do seu JAR ou pegar de um caminho relativo.
Algo com “/images/image.jpg”, por exemplo. Para pegar o início do path, ai tu verifica se está no seu jar, classpath e etc.
xandelol porque está descompactando seu JAR e varrendo o mesmo a procura da imagem ?
Esse JAR não é gerado por você, ou seja, é externo ?
Porque se é algo gerado por você, o que eu tinha em mente é o uso do método getResourceAsStream, da classe Class.
O que não falta são exemplos na net sobre o uso desse método. Dessa forma, com uma classe dentro do JAR, é relativamente simples encontrar a imagem e carregar a mesma.
Sobre a sua exceção, teria como posta-la por completo e indicar onde ela acusa a exceção?
Valeu nel vou dar uma olhada no [color=blue]getResourceAsStream[/color].
Sobre a exceção, é essa aqui:
Exception in thread "main" java.lang.RuntimeException: java.util.zip.ZipException: zip file name too long
at fechamento.zfsd.Menu.CaminhoJar(Menu.java:665)
at fechamento.zfsd.Menu.initComponents(Menu.java:61)
at fechamento.zfsd.Menu.<init>(Menu.java:32)
at fechamento.zfsd.FechamentoZFSD.main(FechamentoZFSD.java:11)
Caused by: java.util.zip.ZipException: zip file name too long
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:75)
at fechamento.zfsd.Menu.CaminhoJar(Menu.java:654)
... 3 more
Java Result: 1
A linha que a exceção indica é essa:
jPanelWithBackground1 = new fechamento.zfsd.JPanelWithBackground(CaminhoJar("ZFLenksysteme"));
[quote=xandelol]Vou tentar…
Essas linhas são o meu [color=blue]try[/color] e [color=blue]catch[/color] do meu caminhoJar[/quote]
Ok.
Não colega, me refiro tu postar essas linhas de código. São essenciais para identificar exatamente a linha em que o erro ocorre.
Eu acredito que seja algo relacionado ao nome do seu JAR, como a própria exceção indica. Por isso, saber exatamente as linhas que ele aponta no código é importante.
O try-catch nada mais é que um possível tratamento a uma exceção, ok?
Agora eu tenho um outro problema …
No Netbeans o código que eu usei acima funciona perfeitamente, mas no .jar, ele não funciona.
Alguém pode me ajudar?