manipulação na máscara de um JFormattedTextField [RESOLVIDO]
4 respostas
W
wellingtonfoz
Bom dia pessoal,
Tenho um JFormattedTextField com máscara: (##) ####-####
Eu gostaria que, por padrão, quando o usuário abrir a janela fique o ‘45’ entre parênteses. Já coloquei na máscara assim: (45) ####-####, mas assim o usuário não consegue apagar o 45 e colocar outro código se ele quiser, isso fica fixo. Preciso que fique por padrão mas que o usuário possa apagar se quiser…
Não, pois com máscara existe meio que uma atomicidade, isto é, ou fica ([telefone removido] ou então fica ( ) - . Não tem como eu fazer um .setText("(45) - ") que ele não aceita!
mauricioadl
publicclassMyPanelextendsJFrame{privateJFormattedTextFieldjcomp1;privateJTextFieldjcomp2;publicMyPanel()throwsParseException{MaskFormattermf=newMaskFormatter("(##) ####.####");jcomp1=newJFormattedTextField(mf);jcomp2=newJTextField();setLayout(newGridLayout(2,1));setSize(800,600);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);add(jcomp2);add(jcomp1);jcomp1.addFocusListener(newFocusListener(){@OverridepublicvoidfocusLost(FocusEventarg0){// TODO Auto-generated method stub}@OverridepublicvoidfocusGained(FocusEventarg0){jcomp1.setText("45");jcomp1.setCaretPosition(5);}});}
W
wellingtonfoz
mauricioadl:
publicclassMyPanelextendsJFrame{privateJFormattedTextFieldjcomp1;privateJTextFieldjcomp2;publicMyPanel()throwsParseException{MaskFormattermf=newMaskFormatter("(##) ####.####");jcomp1=newJFormattedTextField(mf);jcomp2=newJTextField();setLayout(newGridLayout(2,1));setSize(800,600);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);add(jcomp2);add(jcomp1);jcomp1.addFocusListener(newFocusListener(){@OverridepublicvoidfocusLost(FocusEventarg0){// TODO Auto-generated method stub}@OverridepublicvoidfocusGained(FocusEventarg0){jcomp1.setText("45");jcomp1.setCaretPosition(5);}});}
Eu tinha tentado fazer isso e não deu certo por aquilo que disse sobre todos os caracteres ou nada, mas acho que isso era um problema de programação meu.
Como vi que esse código q vc postou funcionou, dei uma geral no meu código e consegui consertar, ahhahha.