Máscara em JOptionPane

Olá gente!
Como eu coloco uma máscara num JOptionPane?

vejam o código:

            String nome_do_arquivo;  
            String nome;  
            String endereco;  
            String cep;  
            String cidade;  
            String estado;  
            String pais;  
            String cpf;  
            String rg;  
            String data_nascimento;  
            String numero_telefone;  
            String numero_celular;  
            String email;  
              
            nome_do_arquivo = JOptionPane.showInputDialog(null, "Qual será o nome deste arquivo?", "Nome do arquivo de cadastro", JOptionPane.QUESTION_MESSAGE);  
            Cadastro.nome_arquivo = nome_do_arquivo;  
  
            nome = JOptionPane.showInputDialog("Qual é o nome de seu cliente?", "Nome do cliente completo");  
  
            endereco = JOptionPane.showInputDialog("Onde seu cliente mora?", "Rua , quadra , nº  , Bairro/Distrito");  
  
            cep = JOptionPane.showInputDialog("Qual é o CEP de seu cliente?", "00000-000");  
  
            cidade = JOptionPane.showInputDialog("Em qual cidade/munincípio seu cliente mora?");  
  
            estado = JOptionPane.showInputDialog("Em qual estado seu cliente mora?");  
  
            pais = JOptionPane.showInputDialog("Em qual país seu cliente mora?", "Brasil");  
  
            cpf = JOptionPane.showInputDialog("Qual é o CPF de seu cliente?", "000.000.000-00");  
  
            rg = JOptionPane.showInputDialog("Qual é o RG de seu cliente?", "000.000.000.000-0");  
  
            data_nascimento = JOptionPane.showInputDialog("Quando é o aniversario de seu cliente?", "00/00/2000");  
  
            numero_telefone = JOptionPane.showInputDialog("Qual é o número de telefone fixo dele(a)?", "000 0000-0000");  
  
            numero_celular = JOptionPane.showInputDialog("E o número de celular?", "000 0000-0000");  
  
            email = JOptionPane.showInputDialog("Ele(a) tem e-mail?", "email@provedor.com");

Tipo assim, onde tem o número de telefone colocar () -, a data de nascimento //_ e etc.?

Oi,

Na verdade, você pode criar um componente externo (Por exemplo um JFormattedTextField) e acopla-lo ao JOptionPane.

Tchauzin!

Não use showInputDialog para entrar essa quantidade absurda de dados (principalmente porque eu me recusaria a entrar dados do nome do meu “munincípio”. ). Crie uma classe derivada de JDialog para você poder entrar com esses dados todos.

Oi,

Bem observado. Sem falar que pode-se fazer um controle melhor para a saída dos dados etc… etc…

Tchauzin!

Como assim classe derivada de JDialog?

Xi, já vi que você teria de criar uma classe derivada de JFrame para hospedar sua aplicação, e então uma derivada de JDialog para entrar com seus dados etc.

(Pelo menos você sabe o que é uma “classe derivada de JDialog”? É uma classe que estende (“extends”) JDialog. O seu editor preferido (por exemplo, WindowBuilder no Eclipse) pode ajudar a lhe criar rapidamente o código para gerar essa tal classe.

Como eu coloco esse JFormattedTextField no JOptionPane?
Quais os procedimentos?