Blz,
Estou querendo validar uma data em formulario.
Tenho um:
No meu formulario.
private JFormattedTextField getJtfDNA() {
if (jtfDNA == null) {
jtfDNA = new JFormattedTextField(setMascara("##/##/####"));
jtfDNA.setBounds(new Rectangle(287, 89, 92, 25));
}
return jtfDNA;
}
Tenho esta classe.
package util;
import javax.swing.JOptionPane;
public class Data {
private String data;
private int dia;
private int mes;
private int ano;
public Data() {
}
/**
* Coverta "data" para inteiro E valida Mês e Dia verificando o retorno de
* cada metodo
*/
public void validaData(String dataTemp){
int mesTemp;
int diaTemp;
data = dataTemp.replace("/","");
dia = Integer.parseInt(data.trim().substring(0,2));
mes = Integer.parseInt(data.trim().substring(2,4));
ano = Integer.parseInt(data.trim().substring(4,8));
mesTemp = checaMes(mes);
if( mesTemp != -1 ){
mes = mesTemp;
diaTemp = checaDia(dia);
if(diaTemp != -1){
dia = diaTemp;
}else{
JOptionPane.showMessageDialog(null,"Data Inválida");
}
}else{
JOptionPane.showMessageDialog(null,"Data Inválida!");
}
}
// Checa mes verificando se é maior que zero e menor que 12
public int checaMes(int mesTemp) {
if (mesTemp > 0 && mesTemp <= 12) {
return mesTemp;
} else {
return -1;
}
}
/**
* Checa dia tendo uma variavel inteira como arrayc "ultimoDiaMes" com os
* valores do ultimo dia de cada mes. Verifica também se o ano é Bissexto
*/
public int checaDia(int diaTemp){
int ultimoDiaMes[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
if(diaTemp > 0 && diaTemp <= ultimoDiaMes[mes]){
return diaTemp;
}else if(mes == 2 && diaTemp == 29 && (ano % 400 == 0 &&(ano % 4 == 0 && ano % 100 != 0 ) ) ){
return diaTemp;
}else{
return -1;
}
}
}
No frame depois de ter digitado a data. Como faço para validar este JFormattedTextField?
…
Existe um jCandelar4. Tem como utiliza-lo neste caso? Como faço isso?
Obrigado.