Formatar Número de Telefone

1 resposta
V

Estou tentando formatar um campo para que seja digitado o número de telefone. No entanto esta apresentando alguns inconvenientes conforme a seguir:

  1. Se o conteúdo do campo não for preenchido completamente, ao posicionar o cursor em um outro campo, o conteúdo digitado é eliminado.
  2. Uma vez preenchido o campo, caso necessite eliminar o conteúdo, ao tirar o foco do campo o conteúdo anterior volta a ser apresentado.

Abaixo segue um exemplo do código que estou utilizando. Por favor, alguém poderia me auxiliar para solucionar estes problemas.

import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.<em>;

import javax.swing.text.</em>;

public class Teste extends JFrame {

Dimension screen = 	Toolkit.getDefaultToolkit().getScreenSize();    

 public Teste() {
     
     super("Formatação Texto");
     
     JPanel JPContainer = new JPanel();
     
     JLabel lblCEP = new JLabel("Telefone");
     lblCEP.setBounds(10,10,60,10);
     JPContainer.add(lblCEP);
     
     JFormattedTextField zipField = new JFormattedTextField(createFormatter("(##)####-####"));
     zipField.setBounds(90,10,100,20);
     JPContainer.add(zipField);

     JLabel lblCity = new JLabel("Endereço");
     lblCity.setBounds(10,30,60,10);
     JPContainer.add(lblCity);
     
     JTextField JTexto = new JTextField("");
     JTexto.setBounds(90,30,100,20);
     JPContainer.add(JTexto);

     JPContainer.setLayout(null);
     //cp.add(JTexto);
     
     JPContainer.setBounds(50,50,200,200);
     getContentPane().add(JPContainer);         
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     setSize(200,100);
     setLocation(((screen.width - 500)/2),((screen.height-450)/2)+44);        
 }
 
protected MaskFormatter createFormatter(String s) {
    MaskFormatter formatter = null;
    try {
        formatter = new MaskFormatter(s);
    } catch (java.text.ParseException exc) {
        System.err.println("formatter is bad: " + exc.getMessage());
        System.exit(-1);
    }
    return formatter;
}
 
 public static void main(String args[]) {
     new Teste().show();
 }

}

1 Resposta

R

cara, eu naum manjo muito de swing…

dá uma olhada, vê se ajuda…
http://www.imasters.com.br/artigo.php?cn=2364&cc=15

Criado 8 de fevereiro de 2005
Ultima resposta 12 de fev. de 2005
Respostas 1
Participantes 2