Daeww pessoal blz? bom sou novato em java, eu queria saber como que se faz para mascarar o jTextField
Muito boa a dica…
Para fazer um campo para inserir o numero de telefone, segundo o site (Ctrl+C) fica assim:
MaskFormatter mf2 = new MaskFormatter("(###) ###-####");
JFormattedTextField ftf3 = new JFormattedTextField(mf2);
E vai permitir que eu entre com um telefone do tipo (047) 371-7070, beleza.
Mas agora eu quero colocar um celular (047) 9975-7070 no mesmo campo :? ou um telefone de São Paulo (011) 1010-7070 :? no mesmo campo
MaskFormatter mf2 = new MaskFormatter("(###) ####-####");
JFormattedTextField ftf3 = new JFormattedTextField(mf2);
Como fazer o TextField aceitar os 2 formatos ao “mesmo tempo”? Sei lah, se sobrou um digito vazio ele se muda automaticamente… ou tem algum tratamento pro evento que faz beep quando eu tento digitar mais digitos que cabe?
VELO
se o estado selecionado for SP
maskformater = x
senao
maskformater = y
vc pode usar Expressões Regulares como mascara?
se sim, como fazer uma expressão regular para o caso do nosso colega?
[quote=gui]
se o estado selecionado for SP
maskformater = x
senao
maskformater = y
[/quote]
Santa catarina tem duas operadoras de telefone fixo, uma com x outra com Y
se estado == sp
mask = x;
senao se estado == sc
mask = y;
senao
mask = z;
:roll:
Acho que naum fui bem claro…
SC tem duas operadoras de telefone fixo, a GVT e a BrasilTelecom.
GVT 4215-7070
BRT 370-7070
Tipo, é tudo SC, é tudo DDD 047, mas tem um digito a mais…
Alguem sabe qual é o listener q lança o BEEP quando vc tenta escrever um caractere extra?
VELO
Acho que compensa mais vc colocar uma máscara com a quantidade máxima de digitos e aceitar casos com menos digitos.
Eh assim que tá hoje…
mas fica estranho um telefone assim:
(047) 3717-070 …
Usuário é bixo MAALA. Mas é ele quem paga a conta
VELO
Em outro lugar li que o JFormattedTextField aceita também um construtor com um parâmetro que implementa java.util.Format, tal como NumberFormat, que aceita dígitos opcionais.
O probleminha é que NumberFormat só aceita números, então não ajuda muito isso.
Se alguém já não escreveu uma versão mais inteligente do MaskFormatter (a gente não é o primeiro que esbarrou em tal problema estúpido), deve ter alguém que vende isso ( ) ou então usar o método de ter três campos numéricos (argh) em vez de apenas 1 mascarado.
Sem contar quando a gente vira usuário, aí a gente reclama pra caramba (como é que pode, só aceitar 4 digitos no começo do número do telefone!)
[quote=thingol]
Sem contar quando a gente vira usuário, aí a gente reclama pra caramba (como é que pode, só aceitar 4 digitos no começo do número do telefone!)[/quote]
Eh verdade
Isso é fod… mesmo…
A Sun poderia ter uma implementação padrão(ou uma nova API) que aceitasse um locale(ou algo assim) de cada país em um JFormattedTextField…
Seria um trabalho a menos em ter que formatar cep,cpf,valores monetários…
Mesmo com os locales naum resolve um galho desses…