Bom, uma forma simples de fazer isto seria pegar a hora e os minutos digitados pelo usuário.
Por exemplo: 25 e 65.
Então vc cria um Integer com cada uns destes valores.
Depois verifica se a hora é maior que 0 e menor que 23 e verifica se os minutos são maior que 0 e menor que 60.
M
marcoscorsoPJ
ok, entendi …
acho melhor eu criar uma funcao pra isso, ou uma classe exclusiva, pois tenho varios campos onde vou digitar os horarios …
como eu faco isso ?? com document ??
e como fica a chamada no jformattedtextfield ??
obrigado
M
marcoscorsoPJ
eu fiz um codigo que valida a hora …
mas coloquei no saida do focus do formattedtextfield, funciona legal, certinho, o problema e que tenho 10x o mesmo codigo …
jFormattedTextField4=newJFormattedTextField(mascara);jFormattedTextField4.setVisible(true);jFormattedTextField4.setEditable(true);jFormattedTextField4.setBounds(650,230,50,25);jFormattedTextField4.setToolTipText("Informe a hora de saída (digite apenas números)");jFormattedTextField4.setFocusLostBehavior(JFormattedTextField.COMMIT);jFormattedTextField4.addFocusListener(newjava.awt.event.FocusAdapter(){publicvoidfocusLost(java.awt.event.FocusEvente){Stringpega="";Stringhora=null;Stringminuto=null;intconta_pega=0;intconta_hora=0;intconta_minuto=0;pega=jFormattedTextField4.getText();pega=pega.trim();if(pega.equals(":")){JOptionPane.showMessageDialog(null,"Digite a hora","Operador",JOptionPane.ERROR_MESSAGE);jFormattedTextField4.setValue("");return;}conta_pega=pega.length();if(conta_pega<5){JOptionPane.showMessageDialog(null,"Digite a hora","Operador",JOptionPane.ERROR_MESSAGE);jFormattedTextField4.setValue("");return;}hora=pega.substring(0,2);minuto=pega.substring(3,5);conta_hora=Integer.parseInt(hora);conta_minuto=Integer.parseInt(minuto);if(conta_hora>23){JOptionPane.showMessageDialog(null,"Hora digitada inválida","Operador",JOptionPane.ERROR_MESSAGE);jFormattedTextField4.setValue("");return;}if(conta_minuto>59){jOptionPane.showMessageDialog(null,"Hora digitada inválida","Operador",JOptionPane.ERROR_MESSAGE);jFormattedTextField4.setValue("");return;}}});
A
AndersonCPJ
NÃO crie o código 10 vezes.
Crie uma classe separada apenas para validar. Onde vc passa o valores para um método desta classe e ele te retorna uma resposta, um true ou false.
M
marcoscorsoPJ
como devo criar essa classe ?? crio ela como um document ??
e a chamada dela no formattedtextfield ??
se colocar setDocument da erro …
como eu faco essa chamada entao …
M
marx_paynerPJ
kra é só vc chamar este método quando o JFormattedTextField perder o foco. Vc já até fez isso em uma outra mensagem acima.
falow’s!
M
marcoscorsoPJ
mas seria aconselhavel fazer essa validacao na saida do focus do campo ??
e se a hora digitada for invalida, o que eu faco, vou ter que limpar o que foi digitado no campo ou deixar o cursor no campo ate que a hora que foi digitada for valida, como faco isso ??
obrigado
M
marx_paynerPJ
isso depende da sua necessidade, vc pode tambem, por exemplo, se seu programa tiver um botão qulaquer vc pode chamar o método a partir do evento deste botão. Ahhh…sei lá existem várias formas de fazer isso.Essa é o tipo de pergunta q vc mesmo tem q responder.