Botão salvar de um jFileChooser

3 respostas
F

olá pessoal, gostaria de perguntar se alguém sabe como checar o nome que o usuário
inseriu em um fileChooser para verificar se é um nome de arquivo válido, ou seja, não tenha caracteres como(: > < ), antes de criar um arquivo como esse nome.
Com o código abaixo é possível pegar o nome do arquivo digitado pelo usuário e fazer a checagem,
mas preciso saber como fazer essa checagem sem fechar a janela do fileChooser como acontece no exemplo.
Acho que tenho que colocar um listener no botão salvar do fileChooser, alguém sabe se da para fazer isso?

public static void main(String[] args) {
  
       JFileChooser  fileChooser = new JFileChooser();
       fileChooser.setDialogTitle("Salvar como");

       fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
       File f = new File("NovoArquivo");
       fileChooser.setSelectedFile(f);

       int retornoArquivoSelecionado = fileChooser.showSaveDialog(null);
         if(retornoArquivoSelecionado == JFileChooser.APPROVE_OPTION){
               String nomeArquivo = fileChooser.getSelectedFile().getName() ;
               System.out.println("nome do arquivo :"+nomeArquivo);
               if(nomeArquivo.contains(":")){
                 System.out.println("nome invalido");
               }
         }
    }

Desde já agradeço pela atenção!

3 Respostas

ViniGodoy

Use os métodos da própria classe File.

if(retornoArquivoSelecionado == JFileChooser.APPROVE_OPTION){ File arquivo = fileChooser.getSelectedFile(); System.out.println("nome do arquivo :"+file.getName()); if(!arquivo.isFile()){ System.out.println("nome invalido"); } }

Testar o nome não é multiplataforma. Cada sistema operacional tem suas próprias regras do que são ou não caracteres válidos no nome do arquivo.

F

Olá Vini, obrigado por responder!

entendi o que você explicou, posso usar a classe File para fazer a consistência do nome do arquivo.
O que gostaria de saber é como devo proceder para manter a janela do fileChooser aberta caso
o nome do arquivo não seja válido pois no código que postei a janela do filechooser é fechada quando
o usuário clica em salvar independente se o nome do arquivo está correto ou não.

Gostaria de deixar essa janela aberta enquanto o usuário clicar em salvar e o
nome do arquivo não for válido.

ViniGodoy

Não conheço uma forma de fazer isso sem fechar o FileChooser. Eu geralmente fecho, dou o erro, e abro novamente.

Criado 18 de outubro de 2011
Ultima resposta 18 de out. de 2011
Respostas 3
Participantes 2