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
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);
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);
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);
. . .
Perae, posso ta fazendo cagada, me tira uma duvida.
adicionar extensao de arquivo no JFileChooser serve tanto pra abrir quando salvar ?
Sim.
Se não me engano a diferença de um para o outro é texto que aparece no botão.
Posta o trecho inteiro da parte que chama o file chooser.
quero q apareca a extensao txt na janela showSaveDialog.
o codigo seria esse mesmo ?
// 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);
. . .
Uma parte do codigo ta assim:
[code]…
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();
…
[/code]
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.
[quote=renatorudolf]
Uma parte do codigo ta assim:
[code]…
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();
…
[/code][/quote]
Aplique o filtro antes de chamar o método showSaveDialog.
Aeeeee Funcionou.
Mas é o seguinte, a classe JFileChooser num me permite salvar com extensao txt tb ? (alem de me mostras somente arquivos com extensao txt)
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.
Entendi,
mas gostaria que o arquivo fosse salvo em .txt automaticamente, sem que o usuario tenha q escrever nomeDoArquivo.txt.
já fez isso alguma vez ?
Uma forma seria concatenar o “.txt” ao nome que for digitado pelo usuário na hora de criar o arquivo.
Desculpa ser chato, mas como faz isso ? :lol:
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.
Valew Eric Yuzo, deu certo.
abraço
quil
Novembro 10, 2011, 9:11pm
#19
Então seria algo como isso.
[code] 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);
[/code]
Ou seja concatenando o arquivo que eu vou salvar com a extenção .TXT assim:
pw = new PrintWriter(file+".txt");