[Resolvido] - JFormattedTextField perde a formtação ao setar valor de objeto
7 respostas
alfredo-avai
Dai galera, to com o seguinte problema:
Tenho um objeto de classe que da getelefone que esta exatamente assim no banco ([telefone removido]
jogo esse valor num formattedtextfield so que oq voçe digitar ele aceita letras , ou pode digitar (0000000)767 -
e ao final ele apaga-se.
agenda.setTelefoneResidencial(jtFone1.getText());
agenda.setTelefoneComercial(jtfone2.getText());
Lembrando que eles na classe estão como string.
Obrigado.
Brother, um jeito que eu sempre faço é criar uma classe extendendo o JFormattedTextField. no construtor chamo o super.
e abaixo faço:
mascara = new MaskFormatter("(##)####-####");
super.setFormatter(mascara);
ai o set e o get funciona tranquilo da maneira q ta no seu banco ai, tenta ai…
alfredo-avai
Valeu a ajuda.
mas não comprendi muito bem, faço uma classe herdando da classe JFormattedTextField e crio um atributo publico com mascara?
Abraços
douglasjam
É isso mesmo, melhor setar a mascara no construtor, para colocar na sua Gui e só arrastar a classe igual se arrasta um botão. Também pode-se criar uma pallet, pesquisa sobre isso ai depois.
a cara é nesse naipe aí hehe, para setar e normal, setText, ou vc sobrescreve e implementa o seu...
packagemud;importjava.awt.Color;importjava.awt.Font;importjavax.swing.JFormattedTextField;importjavax.swing.JOptionPane;importjavax.swing.text.MaskFormatter;publicclassMudCpfTextFieldextendsJFormattedTextField{privateMaskFormattermascara;privateStringcpf;publicMudCpfTextField(){super();this.setFont(newFont("Verdana",Font.BOLD,12));setDisabledTextColor(newColor(0x61,0x61,0x61));try{this.setText(null);mascara=newMaskFormatter("###.###.###-##");mascara.setPlaceholderCharacter('_');mascara.install(this);this.setCaretPosition(0);}catch(Exceptione){e.printStackTrace();}}@OverridepublicvoidsetEnabled(booleanvalor){super.setEnabled(valor);if(valor==true){setBackground(Color.WHITE);}else{setBackground(newColor(0xD4,0xD4,0xD4));}}publicfinalStringgetCpf(){returncpf;}publicfinalvoidsetCpf(Stringcpf){if(cpf!=null){if(!utilities.CpfUtil.validaCpf(cpf)){JOptionPane.showMessageDialog(null,"Cpf Inválido","CPF Inválido, verifique o mesmo e digite novamente.",JOptionPane.ERROR_MESSAGE);}else{this.cpf=cpf;this.setText(cpf);}}else{this.setText("");}}}
alfredo-avai
Conssegui pessoal, fiz o seguinte basicamente:
mascaraFones = new MaskFormatter("(**)****-****");
mascaraFones.setValidCharacters("[telefone removido] ");
jtfone1.setValue(agd.getTelefoneResidencial());
jtfone1.setFocusLostBehavior(JFormattedTextField.COMMIT);
Valeu a todos, abraços.