Bom dia Amigos
Estou desenvolvendo uma aplicação que precisa da data inicial e data final para uma consulta, estou usando JFormattedTextField para ambos os campos passando como string e utilizando o metodo "converterData()" para comparar com o banco e retornar a data no formato brasileiro, mostando no JTable.
O que eu queria saber é se tem como esse JFormattedTextField tem como receber somente valores de data validos ou existe alguma forma de tratar isso caso eu digite por exemplo 99/02/2007?
O que esta acontecendo é que se eu digitar por exemplo "data inicial": 99/99/2000 e "data final": 01/01/2007 ele vai cair na exceção da minha classe "ConversordeDatas" mas ira mostrar o resultado no meu JTable (Essa é a unica forma que ta dando errado).
qual tratamento preciso dar a essa string?
trecho do meu metodo converterData(){}:
public String converterData(String data){
SimpleDateFormat formato1 = new SimpleDateFormat("yyyy/MM/dd");
/*Método setLenient foi usado poise o SimpleDateFormat, por default,
quando não consegue traduzir o valor recebido em uma data válida,
converte o valor inserido para a data válida mais próxima, tornando assim
que o banco aceite erros.
*/
formato1.setLenient(false);
DateFormat formato2 = DateFormat.getDateInstance();
formato2.setLenient(false);
try {
Date date = formato2.parse(data);
data = formato1.format(date);
return data;
} catch (ParseException ex) {
JOptionPane.showMessageDialog(null, "Formato de data incorreta", "Aviso!", JOptionPane.WARNING_MESSAGE);
return "erro";
}
}
trecho do meu metodo pesquisarMousePressed(){}:
result = dao.ConsultarTorneios(conversorDatas.converterData(datainicial.getText()), conversorDatas.converterData(datafinal.getText()));
if(this.datainicial.getText().equals(" / / ")){
JOptionPane.showMessageDialog(this,"Informe a Data Inicial");
}
else if(this.datafinal.getText().equals(" / / ")){
JOptionPane.showMessageDialog(this,"Informe a Data Final");
}
while(result.next()){
dtm.addRow(new Object[]{result.getString("TOR_idTorneio"),result.getString("TOR_nome"),result.getString("TOR_data_inicial"),result.getString("TOR_data_fim"),result.getString("ROD_idRodada"),result.getString("ROD_status"),result.getString("TOR_arbitro") });
};
if (table.getRowCount()==0){
JOptionPane.showMessageDialog(this,"Nenhum resultado foi encontrado","Aviso!",JOptionPane.INFORMATION_MESSAGE);
}