Olá,
Tudo bem?
Veja bem, eu tenho um método que valida uma data digitada em um JFormattedTextField, o problema é que mesmo o campo estando vazio ele esta validando. O que eu queria saber é como faço para que o campo estando vazio o método de validação não valida-se?
O JFormattedTextField com máscara aparenta está vázio, porém a máscara instalada no campo é um conteúdo válido(no caso da data: " / / "),
então não vai adiantar o seuCampo.isEmpty() pois sempre vai retornar falso, logo, é melhor você mudar seu modo de validação ou arrumar algum “jeitinho” para contornar esse comportamento do JFormattedTextField…
public static String mudar(String valor){
valor.toCharArray();
int b = valor.length();
System.out.println("indice"+b);
String teste = "";
for(int i = 0; i < b; i++){
char c = valor.charAt(i);
System.out.println(c);
if((c!= '-') && (c != '/') && (c != '.')){
teste = teste + c;
}
}
return teste;
}
De uma melhoradinha nisso e teste aí… aqui parece ter funcionado… mas como eu ja havia dito, nao da mto bem pra eu testar aqui… ta meio gambiarra, daí vc adapta melhor pro seu codigo… mas a ideia funciona…
err viagei legal la ensima pensei que voce estava querendo bloquear os botoes . seguinte cria um JFormattedText na sua JFrame , va em propriedades clique em FormatterFactory apos isto clique em márcara -> personalizado e digite ##/##/####
public static String mudar(String valor){
valor.toCharArray();
int b = valor.length();
System.out.println("indice"+b);
String teste = "";
for(int i = 0; i < b; i++){
char c = valor.charAt(i);
System.out.println(c);
if((c!= '-') && (c != '/') && (c != '.')){
teste = teste + c;
}
}
return teste;
}
De uma melhoradinha nisso e teste aí… aqui parece ter funcionado… mas como eu ja havia dito, nao da mto bem pra eu testar aqui… ta meio gambiarra, daí vc adapta melhor pro seu codigo… mas a ideia funciona…
Me diga se funcionar ou nao…
[/quote]
Amor,
Funcionou não… eu vou tentar aqui uma gambiarra… qualquer coisa eu post o código para voces verem…
É o seguinte, o Componente JFormattedTextField tem dois tipos de expressar valores, um é o método getValue() que pega o valor da formatção e o outro é o getText() que pega o valor digitado…
Então ao invés de eu filtrar no IF getText eu filtro a máscara com o getValue(), deu para entender? Se não eu posto o código abaixo: