Problemas com JFormattedTextField

10 respostas
A

Ola,

Pessoal, estou com problemas para adicionar um JFormattedTextField em um banco de dados, estou tentando adicionar um telefone, o formato esta assim:
Campo aparece assim
(xx)xxxx-xxxx
O campo digitado
([telefone removido]

Tentei alterar a maneira de pegar os dados e mesmo assim nao deu certo, fiz assim:

String fone = ClienteTelefone.getText();

Como eu devo fazer para ele salvar direito

valew
[]s

10 Respostas

C

MaskFormatter fmt = new MaskFormatter("(##) ####-####"); JFormattedTextField tf = new JFormattedTextField(fmt); tf.setFocusLostBehavior(JFormattedTextField.COMMIT);

hmichel

Cara, exponha melhor sweu problema, ficou meio confuso…
O que está acontecendo?
O que esta retornando no getText()?

[]'s

marcioa1

Olha,

O JFormattedTextField tem duas propriedades iprotantes. o “TEXT” e o “VALUE”. O comando COMMIT sugerido pelo ccaldas é interesante. Estude-o, pois ele faz com que o text se iguale ao value.

Márcio

A

o meu problema é que eu quero inserir os dados em um db, esses dados eu pego de um JFormattedTextField que eu determinei que ficassese assim
(xx)xxxx-xxxx no formato de um telefone, so que quando eu insiro ele pega esses dados (xx)xxxx-xxxx . Nao sei se o banco que estou usando pode estar causando isso, no caso eu uso o access.

valew
[]s

C

Vc quer pegar só os números do telefone? Se for isso use o método substring(int,int).

A

sim, pegar somente os numeros

String fone = ClienteTelefone.getText();

Estava fazendo assim, mas eu posso usar um substrig ai ?ai eu nao teria que verificar o tamanha todo do campo para saber ate onde eu vou procurar, por exemplo:

String fone = ClienteTelefone.substring(0,8);

Nao teria que usar o legth() - 1 ?

valew

C

Na verdade tu vais ter 3 strings (o código de area, o prefixo do fone e o sufixo do fone). Uma gambiarra q tu podes fazer é:

codigo = texto.substring(1,3);

prefixo = texto.substring(4,8);

sufixo = texto.substring(9);

final = codigo+prefixo + sufixo

Não testei isso, mas acho q dah certo

A

vou testar e depois conto se deu certo.

hmichel

Cara, eh o seguinte. Para fazer a coisa como manda o figurino, de uma estudada em mascaras e formatadores. Na verdade você irá utilizar o método getValue, onde o formatador ficará responável em formatar e devolver apropriadamente os valores de seu JFormattedTextField.

De uma olhada nos l.inks abaixo:
http://java.sun.com/docs/books/tutorial/uiswing/components/formattedtextfield.html
na seção “Setting and Getting the Field’s Value”.

[]´s

A

so uma pergunta, pelo o que eu li isso é uma propriedade do JFormattedTextField, portanto independente do banco que se usa é necessário tratar o campo.

hmichel vc esclareceu minha duvida !
vou fazer uns testes aqui !

valew

Criado 15 de maio de 2005
Ultima resposta 16 de mai. de 2005
Respostas 10
Participantes 4