Olá gente!
Bem, eu estou tentando usar o JFileChooser para salvar um arquivo pdf, mas em vez de aparecer Nome do arquivo, aparece Nome da pasta e quando o usuário seleciona/abre outro diretório, aparece o caminho absoluto do mesmo, não o nome que eu digitei.
JFileChooserlocal=newJFileChooser();local.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);local.setDialogTitle("Escolha um local para salvar");local.setFileHidingEnabled(false);intres=local.showSaveDialog(null);if(res==JFileChooser.APPROVE_OPTION){Stringcaminho=String.valueOf(local.getSelectedFile());ini=System.currentTimeMillis();try{arquivo="\n"+"Cliente: "+jTNome.getText()+"\n\n"+"Endereço: "+jTEndereco.getText()+"\n\n"+"Bairro: "+jTBairro.getText()+"\n\n"+"Cidade: "+jTCidade.getText()+"\n\n"+"Estado: "+jTEstado.getText()+"\n\n"+"País: "+jTPais.getText()+"\n\n"+"CEP: "+jFCep.getText()+"\n\n"+"CPF: "+jFCpf.getText()+"\n\n"+"RG: "+jFRg.getText()+"\n\n"+"Data de aniversário: "+jFNascimento.getText()+"\n\n"+"Número de telefone fixo: "+jFTelefone.getText()+"\n\n"+"Número de celular: "+jFCelular.getText()+"\n\n"+"E-mail: "+jTEmail.getText()+"\n\n"+"Filiação: "+"\n\n"+"Pai: "+jTPai.getText()+"\n\n"+"Mãe: "+jTMae.getText();PDF.exportarPDF(caminho+".pdf",jTNome.getText(),arquivo);total=System.currentTimeMillis()-ini;JOptionPane.showMessageDialog(null,"PDF criado com sucesso!"+"\n\n"+"Tempo total: "+(total/1000.0)+" segundos","Sucesso!",JOptionPane.INFORMATION_MESSAGE);}catch(Exceptionex){JOptionPane.showMessageDialog(null,"Erro em criar o arquivo PDF: "+ex.getMessage(),"Erro",JOptionPane.ERROR_MESSAGE);System.out.println("Erro em criar o arquivo PDF: "+ex.getMessage());}}
Classe PDF:
packageGUI;importcom.itextpdf.text.Document;importcom.itextpdf.text.Element;importcom.itextpdf.text.Font;importcom.itextpdf.text.Font.FontFamily;importcom.itextpdf.text.PageSize;importcom.itextpdf.text.Paragraph;importcom.itextpdf.text.pdf.PdfWriter;importjava.io.FileOutputStream;importjava.io.OutputStream;publicclassPDF{publicstaticvoidexportarPDF(Stringnome,Stringtitulo,Stringconteudo)throwsException{Documentdoc=null;OutputStreamos=null;try{//cria o documento tamanho A4, margens de 2,54cm (72)doc=newDocument(PageSize.A4,48,48,48,48);//cria a stream de saídaos=newFileOutputStream(nome);//associa a stream de saída ao PdfWriter.getInstance(doc,os);//abre o documentodoc.open();//cria a fonteFontf=newFont(FontFamily.HELVETICA,20,Font.BOLDITALIC);Fontf2=newFont(FontFamily.TIMES_ROMAN,14,Font.NORMAL);//adiciona o texto ao PDFParagraphp1=newParagraph(titulo,f);p1.setAlignment(Element.ALIGN_CENTER);doc.add(p1);Paragraphp2=newParagraph(conteudo,f2);doc.add(p2);System.out.println("PDF criado com sucesso!");}finally{if(doc!=null){//fechamento do documentodoc.close();}if(os!=null){//fechamento da stream de saídaos.close();}}}}
D
denisspitfire
acho que é aqui
acho que é aqui
M
mcirqueira
Não é isso, não.
Ele salva direitinho. O erro é no JFileChosser, que como mostra a imagem, em vez de aparecer Nome do arquivo: Teste, aparece Nome da pasta: C:\Users\Documents.
Entendeu?
I
InicianteJavaHenriqu
:thumbup:
:thumbup:
D
denisspitfire
InicianteJavaHenrique:
getSelectedFile().getName();
:thumbup:
iiissoo, eu acho que é pra voce fazer esse código naquele lugar. Eu acho que é ali e é pra fazer alguma coisa como o Henrique disse
M
mcirqueira
Mas continua do mesmo jeito.
Aparecendo o caminho absoluto, estou querendo deixa-lo sem esse “Nome da pasta”. Veja esse outro Print Screen (Anexo):