Abrir diretório em Swing

8 respostas
Guilherme_Gomes

Pessoal,

Eu estava usando o JFileChooser para abrir uma janela onde usuário deve escolher um diretório (JFileChooser.DIRECTORIES_ONLY), porém o JFileChooser demora um absurdo de tempo pra carregar… Então eu decidi usar o java.awt.FileDialog, mas eu não sei como faço para colocar para escolher apenas diretórios, alguém pode me ajudar?

Obrigado,

8 Respostas

antoniopopete

Já usei esse componente uma vez, e não tenho do que reclamar.
Não é a lógica que está fazendo para chamar ele que está causando essa demora não?

Guilherme_Gomes

Não, eu já debuguei e a linha que está causando a demora é:

JFileChooser fileChooser = new JFileChooser();

Eu já usei esse elemento uma vez e realmente não tive problemas, mas agora está dando essa demora, a diferença é que dessa vez eu estou usando o Visual Editor do Eclipse Callisto.

Já procurei na net e achei gente com o mesmo problema que eu, e a solução foi usar o FileDialog, mas ele por padrão escolhe arquivos e não sei como por para escolher diretórios…

jzf

no file dialog não tem algo como Folders only? verifica isso…

Guilherme_Gomes

Já procurei, a única coisa que achei foi um exemplo assim:

System.setProperty("apple.awt.fileDialogForDirectories", "true");

Mas não sei se é isso mesmo, se teria que tratar com diferentes SOs, estou verificando ainda, se alguém tiver um sugestão, por favor avise ^^

hmichel

O JFileChooser tem um bug no Windows Vista referente a performance, resolvido num dos últimos updates para o JDK 6. Tente fazer o seu teste na última versão do JDK 6 para ver se isso ajuda.

[]'s

Guilherme_Gomes

Eu já fiz os updates, e não estou usando Windows Vista, to no XP…

Mesmo com esses BUGs e tal, não tem como usar o FileDialog pra escolher diretório? O visual dele é inclusive mais bonitinho…

Obrigado,

M

Olá Colega,

Sinta-se a vontade para utilizar a escolha de diretórios da seguinte forma:

JFileChooser jFileChooser1 = new JFileChooser();
       jFileChooser1.setApproveButtonText("Selecionar");
       jFileChooser1.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
       int returnVal = jFileChooser1.showDialog(mainPanel, null);
       if (returnVal == JFileChooser.APPROVE_OPTION) {
           JOptionPane.showMessageDialog(mainPanel, "Diretório selecionado: " + jFileChooser1.getSelectedFile().getAbsolutePath());
       }

Sucesso !

damghani

mjammal:
Olá Colega,

Sinta-se a vontade para utilizar a escolha de diretórios da seguinte forma:

JFileChooser jFileChooser1 = new JFileChooser();
       jFileChooser1.setApproveButtonText("Selecionar");
       jFileChooser1.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
       int returnVal = jFileChooser1.showDialog(mainPanel, null);
       if (returnVal == JFileChooser.APPROVE_OPTION) {
           JOptionPane.showMessageDialog(mainPanel, "Diretório selecionado: " + jFileChooser1.getSelectedFile().getAbsolutePath());
       }

Sucesso !

Muito bom!
Funcionou perfeito para o que eu precisava, valeu!

Criado 27 de março de 2008
Ultima resposta 28 de nov. de 2010
Respostas 8
Participantes 6