publicDefaultFormatterFactorysetFormatoData(){MaskFormattercomFoco=null;try{comFoco=newMaskFormatter("##/##/####");}catch(ParseExceptionpe){}DefaultFormatterFactoryfactory=newDefaultFormatterFactory(comFoco,comFoco);returnfactory;}//método para retornar uma máscara para um jFormatedTextField para DDDpublicDefaultFormatterFactorysetFormatoDdd(){MaskFormattercomFoco=null;try{comFoco=newMaskFormatter("(##)");}catch(ParseExceptionpe){}DefaultFormatterFactoryfactory=newDefaultFormatterFactory(comFoco,comFoco);returnfactory;}//método para retornar uma máscara para um jFormatedTextField para fone com 8 digitospublicDefaultFormatterFactorysetFormatoFone(){MaskFormattercomFoco=null;try{comFoco=newMaskFormatter("####-####");}catch(ParseExceptionpe){}DefaultFormatterFactoryfactory=newDefaultFormatterFactory(comFoco,comFoco);returnfactory;}//método para retornar uma máscara para um jFormatedTextField para hora com horas e minutospublicDefaultFormatterFactorysetFormatoHora(){DateFormatf=newSimpleDateFormat("kk:mm");MaskFormattercomFoco=null;try{comFoco=newMaskFormatter("##:##");}catch(Exceptionpe){System.out.println("Erro ao Formatar a Hora! -- ControleFormataDatas.java");}DefaultFormatterFactoryfactory=newDefaultFormatterFactory(comFoco);returnfactory;}//método para retornar uma data formatada COMUMpublicDatetrasformaData(Stringdata){DateFormatformataData=newSimpleDateFormat("dd/MM/yyyy");try{Dated=formataData.parse(data);//Compara se a data atual é maior que a data de cadastroif(d.compareTo(newDate())>0){// JOptionPane.showMessageDialog(this.getOwner(), "Data não pode ser maior que a atual!","Atenção!",JOptionPane.WARNING_MESSAGE);returnnull;}returnd;}catch(ParseExceptionpex){//JOptionPane.showMessageDialog(this.getOwner(), "Data inválida!","Atenção!",JOptionPane.WARNING_MESSAGE);returnnull;}}//Verifica se a Hora é valida e transforma ela em datapublicDatetransformaHora(Stringhora){//Seta o formato da horaDateFormatformatHora=newSimpleDateFormat("HH:mm");try{//Verifica se a hora inicial e final estão preenchidaif(!"".equals(hora)||hora==null){//Seta o formato da hora inicial e finalDatehoraRes=(Date)formatHora.parse(hora);returnhoraRes;}else{returnnull;}}catch(ParseExceptione){//JOptionPane.showMessageDialog(this.getOwner(), "Hora Inválida!","Atenção!",JOptionPane.WARNING_MESSAGE);returnnull;}}publicStringsetStringFormatoData(Dated){Stringres=null;//Seta o formato da dataDateFormatformatData=newSimpleDateFormat("dd/MM/yyyy");try{res=formatData.format(d);returnres;}catch(IllegalArgumentExceptionarg){returnres;}}publicStringsetStringFormatoHora(Dated){Stringres=null;//Seta o formato da horaDateFormatformatHora=newSimpleDateFormat("HH:mm");try{res=formatHora.format(d);returnres;}catch(IllegalArgumentExceptionarg){returnres;}}publicStringsetStringFormatoHoraTotal(Floatf){Stringres=null;IntegertHora=f.intValue();try{res=newString(tHora.toString());if(res.length()<4){res="0"+tHora.toString();returnres;}else{res=tHora.toString();returnres;}}catch(IllegalArgumentExceptionarg){returnres;}}publicDatetrasformaDataTotal(Floatdata){DateFormatformataHora=newSimpleDateFormat("hh:MM:ss");Stringres=null;IntegertHora=data.intValue();try{res=newString(tHora.toString());if(res.length()<6){res="0"+tHora.toString();}else{res=tHora.toString();}Dated=formataHora.parse(res);//Compara se a data atual é maior que a data de cadastroif(d.compareTo(newDate())>0){// JOptionPane.showMessageDialog(this.getOwner(), "Data não pode ser maior que a atual!","Atenção!",JOptionPane.WARNING_MESSAGE);returnnull;}returnd;}catch(ParseExceptionpex){//JOptionPane.showMessageDialog(this.getOwner(), "Data inválida!","Atenção!",JOptionPane.WARNING_MESSAGE);returnnull;}}//método para retornar uma data formatada COMUMpublicDatetrasformaDataBrasil(Objectdata){Localebrasil=newLocale("pt","BR");DateFormatdf=DateFormat.getDateInstance(DateFormat.MEDIUM,brasil);StringdataBr=df.format(data);DateFormatformataData=newSimpleDateFormat("dd/MM/yyyy");try{Dated=formataData.parse(dataBr);//Compara se a data atual é maior que a data selecionadaif(d.compareTo(newDate())>0){returnnull;}returnd;}catch(ParseExceptionpex){returnnull;}}//método para retornar uma data formatada COMUMpublicbooleancomparaData(Datedat1,Datedat2){try{//Compara se a data atual é maior que a data de cadastroif(dat1.compareTo(dat2)>0){returnfalse;}}catch(IllegalArgumentExceptione){returnfalse;}catch(NullPointerExceptione){returnfalse;}returntrue;}
Zeed01
sodrope:
Inicialmente obrigado pela colaboração.
Mas é que o meu problema é conseguir gerar um formato para entrada de numeros do tipo 99999,99.
Se puder me ajudar agradeço.
Um abraço.
diego2005
Você tem um número máximo de digitos antes da vírgula???
Zeed01
Em alguns casos sim em outros não.
diego2005
Por que se for fixo acho que você pode fazer assim:
Porque na hora de digitar nesse campo acontece algumas coisas que eu não queria:
-ele ficou com 3 casas antes da virgula e 2 depois, se eu digito só um número depois da virgula e dou o TAB, o valor some, como se fosse inválido.
-se eu quero digitar só 1 ou 2 números antes da virgula tenho que começar com 0 (Zero), porque não adianta digitar um número e tentar digitar virgula ou ponto para passar para a parte decimal.
Alguém sabe como resolver isso ?
Abraços.
king_of_gods
Cria um metodo que insere no campo 0 antes e depois.
Eu no seu caso trabalharia mesmo com um TextField e um metodo, se o metodo me disse falso, faria o cara digita denovo.
Bem é só uma sugestão.
fabim
Zeed,
vai por mim bro… esquece essa joça ai e faz as validações de entrada com InputVerifier.
A medida que ele for digitando, vc vai completando com a máscara, “/” ou “-” ou “.” sei lá. c faz uma vez e nunca mais esquenta a cabeça com isso.
Zeed01
fabiocsi:
La vai pergunda de calça-branca…
InputVerifier é uma classe da api java ou uma sugestão sua ?
Tem algum exemplo de como implementar isso ?
Veja se eu entendi:
Eu teria uma classe que faria a validação e inserção da máscara de data, telefone, numero, conforme for o caso.
Então em um listener de teclado (não sei qual ainda) eu usaria essa classe para validar e colocar a mascara.
É isso ?
Valeu…
fabim
e por aí mano…
vc vai desenvolver um componente, que vai extender de InputVerifier… e depois só vai colar ele no teu JTextField…
JFormattedTextField é uma disgraça mano to te avisando… se o cara clica no meio do campo e começa a digitar da zica ( é só 1 dos exemplos do probelma de se trabalhar com JFTF )
O inputVerifier vai testar se o conteudo do campo é aceitavel qdo vc trocar de campo… com FocusLost isso nao funfa tb, tu tenta exibir uma JOptionPane com erro no focus lost, ela aparece 4 x DASHduashdASDAUASU
resumindo… usa InputVerifier =D vc vai gastar um tempim a mais, pensar pra fazer direitim, adapatar ele pra receber varios tipos de mascara diferente… c pode declarar dentro dele umas variaveis staticas pra poder passar o tipo exemplo:
seuTextField.setInputVerifier( new SeuInputVerifier( SeuInputVerifier.CPF ) );
Eu teria uma classe que faria a validação e inserção da máscara de data, telefone, numero, conforme for o caso.
Exato. Mas vc nao precisa “inserir” a mascara, vc “completa” ela no InputVerifier. Ex: se o cara digitar 16/06/2006, ok. se digitar 16062006, vc poe as 2 barras… já um 16/062006 não vale né =D
Zeed01:
fabiocsi:
Então em um listener de teclado (não sei qual ainda) eu usaria essa classe para validar e colocar a mascara.
nao precisa de listener. basta usar o setInputVerifier( InputVerifier )
Zeed01
fabiocsi :
Desculpe o abuso… mas então eu não teria mascara no campo, por exemplo, se for um campo para entrada de data, ele vai aparecer em branco, se o usuário colocar, por exemplo, 25072007, é uma data valida e eu transformo em 25/07/2007, antes de sair do componente, é isso ?
Um abraço !
Zeed01
Fabio:
Esse pacote adm.util.Util é um pacote seu ?
[]s
fabim
sim, é isso mesmo… a nao ser que “nao eu quero de qqer jeito que as barrinhas e os pontinhos e tracinhos aparecam la mesmo qdo o cara noa digitou nada” é bro ai nao tem jeito ai usa JFTF mas com InputVerifier te digo que fica muito mais funcional
sim, é pacote meu mesmo… sry =( tira essa instrução package dai =D