Validação de campos de Textfields é sempre complicado para quem esta começando,
esta
dica cobre a maioria de tipos de campos pra validação, neste exemplo
utilizamos duas classes uma que ira pegar o conteúdo do text field e
passar para outra Matches, que fara a comparação.
E
muito interessante manter esse esquema principalmente se você irá
utilizar varias classes para serem analisadas, assim se economiza muitas
linhas de código;
Esta Classe recebe as String passadas pela Classe de Validação e retorna um boleano.
import java.text.Normalizer;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Edson Pessotti
*/
public class Matches {
public boolean matchesOnlyNumber(String text) {
return text.matches("[0123456789]+");
}
public boolean matchesOnlyText(String text) {
CharSequence cs = new StringBuilder(text);
text= Normalizer.normalize(cs, Normalizer.Form.NFKD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
return text.matches("[Ww a-zA-Z]+"); /
}
public boolean matchesOnlyAlfa(String text) {
CharSequence cs = new StringBuilder(text);
text= Normalizer.normalize(cs, Normalizer.Form.NFKD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
return text.matches("[wdWD a-zA-Z0-9/_-]+");
}
public boolean matchesOnlyValor(String text) {
return text.matches("[\"^[-+]?\\d{1,3}(\\.\\d{3})*,\\d{2}$\"]+");
}
public boolean matchesOnlyCPF(String text) {
return text.matches("[/(^\\d{3}\\.\\d{3}\\.\\d{3}\\-\\d{2}$)|(^\\d{2}\\.\\d{3}\\.\\d{3}\\/\\d{4}\\-\\d{2}$)/ ]+"); //Passa para o método matches a regex
}
}/////////
//////////
Esta parte do código deve estar na classe de validação, cada qual chama o metodo matches
corrrespondente ao seu tipo. recebendo um boleno caso não bata com o formato exibe mensagem
de erro. suporta os principais tipos para validação, caso você tenha uma sugestão melhor e só deixar nos comentários.
if(!cli.matchesOnlyAlfa(tcep.getText())) {
JOptionPane.showMessageDialog(null, "Você não pode inserir Letras no CEP.");
}
if(!cli.matchesOnlyAlfa(tnome.getText())) {
JOptionPane.showMessageDialog(null, "Você não pode inserir números no nome.");
}
if(!cli.matchesOnlyAlfa(tinsc.getText())) {
JOptionPane.showMessageDialog(null, "Você não pode inserir Letras na Iscrição Estadual.");
}
if(!cli.matchesOnlyAlfa(tcnpj.getText())) {
JOptionPane.showMessageDialog(null, "Você não pode inserir Letras no CNPJ/CPF.");
}
if(!cli.matchesOnlyAlfa(tfone.getText())) {
JOptionPane.showMessageDialog(null, "Você não pode inserir Letras no Telefone.");
}
if(!cli.matchesOnlyText(tramo.getText())) {
JOptionPane.showMessageDialog(null, "Você não pode inserir números no ramo.");
}
if(!cli.matchesOnlyText(tcidade.getText())) {
JOptionPane.showMessageDialog(null, "Você não pode inserir números no Cidade.");
}
if(!cli.matchesOnlyText(testado.getText())) {
JOptionPane.showMessageDialog(null, "Você não pode inserir números no Estado.");
}
if(tendereco.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Ops!! Vamos Preencher o Endereço Gente.");
}
if(!cli.matchesOnlyAlfa(tbairro.getText())) {
JOptionPane.showMessageDialog(null, "Você não pode inserir números no Bairro.");
}
Até A próxima.
Edson pessotti
Assinar:
Postagens (Atom)
Programa exempo para consulta em bd Mysql com programa C
#include<stdio.h> #include<mysql/mysql.h> # ...
-
Este ebook e exelente e muito didático, tem me ajudado muito a aprender gambas, sempre quis estudar gambas, mas só estou podendo faze-lo a...
-
O Ryzen 9 3950X possui 16 núcleos e uma arquitetura baseada em 7nm Veja também:AMD e Samsung assinam parceria para trazer Radeon aos smartp...