Add extensão de arquivo na classe JFileChooser

18 respostas
R

Boa noite

Como faço pra gerar um arquivo com extensão .txt com a classe JFileChooser ?

Tentei assim:

FileFilter filter extensao = new FileNameExtensionFilter ("Arquivo txt", "txt");
chooser.addChoosableFileFilter(filter);

nao deu certo.
Só aparece all files

18 Respostas

E

Aquele nome “extensao” está sobrando aí na declaração da variável. Tirando isso fica correto.

Se quiser que a opção All Files não apareça, use o método:

fileChooser.setAcceptAllFileFilterUsed(false);
R

Eric Yuzo

inclui:

fileChooser.setAcceptAllFileFilterUsed(false);

e nao funcionou, como vc add extensoes em JFileChooser ?

FileFilter filter = new FileNameExtensionFilter ("Arquivo txt", "txt");  
   chooser.addChoosableFileFilter(filter);
E

Copiei este trecho de uma classe que tenho aqui. Está filtrando normalmente:

// Criação do file chooser. JFileChooser fileChooser = new JFileChooser(); // Seta o título do diálogo. fileChooser.setDialogTitle("Selecione o arquivo fonte"); // Define o filtro de seleção. fileChooser.addChoosableFileFilter(new FileNameExtensionFilter( "Planilhas do excel (*.xls)", "xls")); fileChooser.setAcceptAllFileFilterUsed(false); // Impede seleções múltiplas. fileChooser.setMultiSelectionEnabled(false); // Exibe o diálogo. int op = fileChooser.showOpenDialog(this); . . .

R

Perae, posso ta fazendo cagada, me tira uma duvida.

adicionar extensao de arquivo no JFileChooser serve tanto pra abrir quando salvar ?

E

Sim.

Se não me engano a diferença de um para o outro é texto que aparece no botão.

E

Posta o trecho inteiro da parte que chama o file chooser.

R

quero q apareca a extensao txt na janela showSaveDialog.

o codigo seria esse mesmo ?

R

Uma parte do codigo ta assim:

...
                JFileChooser salvandoArquivo = new JFileChooser();
		int resultado = salvandoArquivo.showSaveDialog(null);
		
		FileFilter extensao = new FileNameExtensionFilter("Arquivo txt", "txt");
		salvandoArquivo.setFileFilter(extensao);
		
		
		if (resultado == JFileChooser.APPROVE_OPTION) {

			File salvarArquivoEscolhido = salvandoArquivo.getSelectedFile();
...
E

Troque:

fileChooser.showOpenDialog(this);Por:

fileChooser.showSaveDialog(this);

O this representa a janela que está chamando o file chooser, caso esteja chamando-o de uma classe que estende JFrame, por exemplo.

E
renatorudolf:
Uma parte do codigo ta assim:
...
                JFileChooser salvandoArquivo = new JFileChooser();
		int resultado = salvandoArquivo.showSaveDialog(null);
		
		FileFilter extensao = new FileNameExtensionFilter("Arquivo txt", "txt");
		salvandoArquivo.setFileFilter(extensao);
		
		
		if (resultado == JFileChooser.APPROVE_OPTION) {

			File salvarArquivoEscolhido = salvandoArquivo.getSelectedFile();
...
Aplique o filtro antes de chamar o método showSaveDialog.
R

Aeeeee Funcionou. :smiley:

Mas é o seguinte, a classe JFileChooser num me permite salvar com extensao txt tb ? (alem de me mostras somente arquivos com extensao txt)

E

Não entendi muito bem. Quer dizer, criar um arquivo que não exista já com a extensão txt?

O JFileChooser permite que se selecione arquivos. Ele não cria nem escreve neles, o que ele faz é retornar um objeto que representa um arquivo, que pode existir ou não. O tratamento dos arquivos é uma etapa a parte.

Quanto ao FileFilter, ele só filtra os arquivos que aparecem na tela. Ele não trata o que é digitado pelo usuário.

R

Entendi, :wink:

mas gostaria que o arquivo fosse salvo em .txt automaticamente, sem que o usuario tenha q escrever nomeDoArquivo.txt.

já fez isso alguma vez ?

E

Uma forma seria concatenar o “.txt” ao nome que for digitado pelo usuário na hora de criar o arquivo.

R

Desculpa ser chato, mas como faz isso ? :lol:

E
String nomeDoArquivo = fileChooser.getSelectedFile().getPath() + ".txt";

O método getPath retorna o caminho do arquivo (o que deve estar sem extensão), em seguida concatena com a extensão. Depois basta criar um objeto File com este caminho.

R

Valew Eric Yuzo, deu certo.

abraço

Q

Então seria algo como isso.

File file = escolha_arquivo.getSelectedFile();

        //Criamos um PrintWriter, para escrever no arquivo.
        PrintWriter pw = null;


            String texto = areatexto.getText();
        try {
            //Escrevemos no arquivo.
            pw = new PrintWriter(file+".txt");
            pw.println(texto);
Ou seja concatenando o arquivo que eu vou salvar com a extenção .TXT assim:
pw = new PrintWriter(file+".txt");
Criado 24 de fevereiro de 2011
Ultima resposta 10 de nov. de 2011
Respostas 18
Participantes 3