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.
Veja esse Print Screen (Anexo):

posta o pedaço do código pls
Eís o código:
[code]JFileChooser local = new JFileChooser();
local.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
local.setDialogTitle(“Escolha um local para salvar”);
local.setFileHidingEnabled(false);
int res = local.showSaveDialog(null);
if (res == JFileChooser.APPROVE_OPTION) {
String caminho = 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 (Exception ex) {
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());
}
}[/code]
Classe PDF:
[code]package GUI;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Font.FontFamily;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class PDF {
public static void exportarPDF(String nome, String titulo, String conteudo) throws Exception {
Document doc = null;
OutputStream os = null;
try {
//cria o documento tamanho A4, margens de 2,54cm (72)
doc = new Document(PageSize.A4, 48, 48, 48, 48);
//cria a stream de saída
os = new FileOutputStream(nome);
//associa a stream de saída ao
PdfWriter.getInstance(doc, os);
//abre o documento
doc.open();
//cria a fonte
Font f = new Font(FontFamily.HELVETICA, 20, Font.BOLDITALIC);
Font f2 = new Font(FontFamily.TIMES_ROMAN, 14, Font.NORMAL);
//adiciona o texto ao PDF
Paragraph p1 = new Paragraph(titulo, f);
p1.setAlignment(Element.ALIGN_CENTER);
doc.add(p1);
Paragraph p2 = new Paragraph(conteudo, f2);
doc.add(p2);
System.out.println("PDF criado com sucesso!");
} finally {
if (doc != null) {
//fechamento do documento
doc.close();
}
if (os != null) {
//fechamento da stream de saída
os.close();
}
}
}
}[/code]
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?
[quote=InicianteJavaHenrique]getSelectedFile().getName();
:thumbup: [/quote]
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
Mas continua do mesmo jeito.
Aparecendo o caminho absoluto, estou querendo deixa-lo sem esse “Nome da pasta”. Veja esse outro Print Screen (Anexo):

Troque isso:
local.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
por isso:
local.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
É isso?
Compare essa ultima imagem com a da primeira mensagem.
[quote=felipeaps]Troque isso:
local.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
por isso:
local.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
É isso?
[/quote]
Ok. Deu certo agora, eu coloquei DIRECTORIES_ONLY, para o usuário selecionar apenas diretórios.
Valeu!