Como validar uma data de JformmaterTextfield

1 resposta
java
L
Queria saber se tem como eu validar uma data string que pego em um Formmater antes de adicionar os dados ao vetor tipo especificamente criar uma função para validar data e outra para verificar se a uma data ela  depois da digitada

public static boolean data(String data) {

String dateFormat = dd/MM/uuuu;
DateTimeFormatter dateTimeFormatter = DateTimeFormatter
	    .ofPattern(dateFormat)
	    .withResolverStyle(ResolverStyle.STRICT);
	    try {
	        LocalDate date = LocalDate.parse(data, dateTimeFormatter);
	        return true;
	    } catch (DateTimeParseException e) {
	    
	       return false;
	    } 
}
Parte grafica

JFormattedTextField C_datarecebimento = new JFormattedTextField(newMaskFormatter("##/##/####"));

panel.add(C_datarecebimento);


esta seria a parte para verificar se a data esta errada mas passa direto

ja na classe grafica de tecnico fiz a mesma coisa e deu certo não passa ate eu digitar um numero de carteira de trabalho diferente

if(Main.carteira(Integer.parseInt(C_carteira.getText()))) {

JOptionPane.showMessageDialog(null, Carteira de trabalho ja existente faça outra);

}else {
Main.getTecnicos().add(new Tecnico(C_nome.getText(), C_telefone.getText(), C_endereco.getText(), (String) C_sexo.getSelectedItem(), 
						Double.parseDouble(C_salario.getText()), Integer.parseInt(C_carteira.getText()),
						Integer.parseInt(C_matricula.getText())));
			
						JFrame tela = null;
						tela = new Menu();
						tela.setVisible(true);
						setVisible(false);
				}

1 Resposta

H

O método data retorna true se a data é válida, e false se for inválida. Mas no seu if você mostra a mensagem de data inválida se o retorno for true:

if (Main.data(etc...))

Para testar se o retorno é false, coloque o operador de negação na frente: !

if (! Main.data(etc...)) { // <--- repare no "!" antes de "Main.data"
    // data inválida
} else {
    // data válida
}

Ou inverta a lógica, deixando o código de data válida no if:

if (Main.data(etc...)) {
    // data válida
} else {
    // data inválida
}
Criado 25 de novembro de 2020
Ultima resposta 27 de nov. de 2020
Respostas 1
Participantes 2