Problema com JFileChooser

8 respostas
B

Olá pessoal

alguém aí já teve um problema assim: tenho um applet e em determinado momento eu instancio um objeto da classe JFileChooser, exibo ele para receber os dados para gravar um arquivo.

Estou testando esse applet mas tem máquinas que ele não exibe objeto e não consigo salvar o arquivo.

Alguém faz idéia de onde pode estar o problema?

Obrigada!

8 Respostas

davidtiagoconceicao

Olá Bruna,

Poste mais informações sobre seu problema, se possível o trecho de código em que o JFileChooser é instanciado/exibido. Ocorre alguma mensagem de erro? Alguma exceção?

As máquinas têm o mesmo sistema operacional? A mesma versão da JVM? O mesmo browser?

B

Olá!

veja o trecho do código:

JFileChooser fchooser = new JFileChooser();

			fchooser.setFileFilter(new javax.swing.filechooser.FileFilter(){
                public boolean accept(java.io.File f){
                    String name = f.getName().toLowerCase();
                    return name.endsWith(".pdf")
                    || f.isDirectory();
                }
                public String getDescription(){
                	return ".pdf";
                }
            });
			
			
	        int result = fchooser.showSaveDialog(this);

estou testando o applet no windows xp com o firefox e o internet explorer.

tem máquina com a mesma configuração dessas que estão dando erro.

a exceção lançada é:

Exception in thread “AWT-EventQueue-2” java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)

at java.security.AccessControlContext.checkPermission(Unknown Source)

at java.security.AccessController.checkPermission(Unknown Source)

at java.lang.SecurityManager.checkPermission(Unknown Source)

at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)

at java.lang.System.getProperty(Unknown Source)

at java.io.Win32FileSystem.getUserPath(Unknown Source)

at java.io.Win32FileSystem.resolve(Unknown Source)

at java.io.File.getAbsolutePath(Unknown Source)

at sun.awt.shell.Win32ShellFolder2.(Unknown Source)

at sun.awt.shell.Win32ShellFolder2.listFiles(Unknown Source)

at sun.awt.shell.ShellFolder.listFiles(Unknown Source)

at sun.awt.shell.Win32ShellFolderManager2.get(Unknown Source)

at sun.awt.shell.ShellFolder.get(Unknown Source)

qual a solução mais elegante para tratar isso? Parece problema de permissão para ler os diretórios do windows…

obrigada.

davidtiagoconceicao

Sim, esta exceção é lançada porque o JFileChooser não consegue acesso aos diretórios:

http://java.sun.com/j2se/1.4.2/docs/api/java/security/AccessControlException.html

Acho que você não pode acessar os arquivos no cliente à partir de um JFileChooser.
Não tenho como pesquisar agora, sugiro que você faça uma pesquisa mais detalhada aqui no GUJ e no Google por AccessControlException…

T

a) Applets só podem acessar arquivos se forem digitalmente assinadas
b) No Windows Vista, applets não podem acessar arquivos, mesmo se forem digitalmente assinadas, se você estiver usando o Sun Java Plugin com versão inferior a 6.0 Update 10.

davidtiagoconceicao

thingol:
a) Applets só podem acessar arquivos se forem digitalmente assinadas
b) No Windows Vista, applets não podem acessar arquivos, mesmo se forem digitalmente assinadas, se você estiver usando o Sun Java Plugin com versão inferior a 6.0 Update 10.

Beleza, era o que eu imaginava.

B

thingol:
a) Applets só podem acessar arquivos se forem digitalmente assinadas
b) No Windows Vista, applets não podem acessar arquivos, mesmo se forem digitalmente assinadas, se você estiver usando o Sun Java Plugin com versão inferior a 6.0 Update 10.

Olá thingol,

não entendo porque o meu applet funciona em uma máquina e em outra não. O que estou tentando fazer é gravar um arquivo e nas outras máquinas, no windows xp, está funcionando normalmente.

Esse problema está ocorrendo em duas máquinas com o windows xp. Tenho um problema parecido em uma máquina com o vista, ele mostra o JFileChooser, consegue acessar os diretórios mas não consegue escrever, não consigo gravar o arquivo.

Gostaria de saber se existe uma forma de eu resolver essa situação dentro do código ou se será necessário mudar alguma configuração no windows.

Obrigada!

B

Olá davidtiagoconceicao,

existe outra forma de eu acessar os arquivos?

Obrigada!

T

Isso costuma ser permissão de arquivos, e é coisa do Windows.

Não se esqueça de verificar a versão do Sun PlugIn (veja o Java Console para obter essa informação).

Criado 20 de janeiro de 2009
Ultima resposta 20 de jan. de 2009
Respostas 8
Participantes 3