JFormattedText ajudinha!

4 respostas
C

tenho um JFormattedText com o formato do CPF
###.###.###-##.
esta formatando belezinha, o problema e que quero pegar o valor desse campo sem a mascara

tipo se eu usar o metodo getText() me retorna [CPF removido]

se eu utilizar o metodo getValue() ele me retorna null

queria que me retornasse [telefone removido] sem a mascara

alquem sabe como eu faria isto???

value galera

4 Respostas

lina

Oi,
você pode receber o conteudo normalmente com a pontuação,
depois você pode dar um replaceAll e retirar ela… substituir a pontuação por nada…

é uma maneira…

Tchauzin!

C

resolvi isso dessa maneira

public static String sonumeros(String texto){
		String Separadores = "/-._";
		String r="";
		for(int i=0;i<texto.length();i++){
			if (Separadores.indexOf(texto.charAt(i))==-1){
				r += texto.charAt(i);
			}
		}
		
		return r;

esse metodo retorna tudo da string menos os separadores

_fs

Estranho ele retornar null. Normalmente é retornado isso quando o valor digitado ainda é inválido. Neste caso você pode:

  1. Forçar o commit da edição chamando commitEdit() antes de fazer getValue()
  2. Fazer um field.setFocusLostBehavior(JFormattedTextField.COMMIT). O que força o commit mesmo que a alteração seja inválida.

E para o getValue() não retornar os caracteres fixos da máscara, não esqueça de setar setValueContainsLiteralCharacters para true no MaskFormatter.

_fs

E uma forma mais rápida de substituir todos os caracteres não numéricos em uma string é esta:

String s = "asdadhd908213091asdjk01298";
System.out.println( s.replaceAll( "[^0-9]", "" ) );
Criado 3 de agosto de 2007
Ultima resposta 3 de ago. de 2007
Respostas 4
Participantes 3