Validação de Form

7 respostas
Jonatas

Galera sou novo em Java e quero muito ajuda de vcs.
Preciso fazer uma validação de formulário em Desktop.

Assim qndo a pessoa preencher o último campo (campo senha) ela pressionará ENTER e aí irá p/ uma próxima aba de uma JTabbedPane.
Só q antes de ir p/ próxima aba, é preciso fazer uma validação de campos.

Estou fazando nesse esquema:

//DENTRO DE KEYLISTENER

public void keyPressed(KeyEvent e) {
	if(e.getKeyCode() ==  KeyEvent.VK_ENTER) {
		if(!this.checkValues (JTextField[] {txtNome, txtFantasia, txtRg, txtCpf, txtSenha})
		{
			JOptionPane.showMessageDialog(null, "CAMPO OBRIGATÓRIO");
		} else {
			tabbedPaneFuncionario.setSelectedComponent(pnlEndereco);
		}
	}
}

//VERIFICA
public boolean isEmpty(JTextField value) {
	return (value == null || value.equals(""));
}

//VARRER
public boolean checkValues(JTextField[] v) {
	for (int i = 0; i < v.length; i++) {
		if (this.isEmpty(v[i])) {
			return false;
		}
		v[i].grabFocus();
	}
	return true;
}

Aí dá um erro de Sintaxe nesta instrução:
if(!this.checkValues (JTextField[] {txtNome, txtFantasia, txtRg, txtCpf, txtSenha})

Espero por respostas…

7 Respostas

rodrigo_gomes

Olá, seja bem vindo :smiley:

chame seu método apenas assim
checkValues (JTextField)

[]´s

Jonatas

valeu garoto

Jonatas

valeu rodrigo, mas continua a dar erro ele nao reconhece

rodrigo_gomes

seu array ta sendo inicializado antes de ser passado ao metodo?
qual a mensagem de erro?

Jonatas

Na verdade copiei de um exemplo q vi aki do Rafael Steil:

private boolean checkValues(String[] v) {
 	for (int i = 0; i < v.length; i++) {
 		if (this.isEmpty(v[i])) {
 			return false;
 		}
 	}
 
 	return true;
 }
 
 ...
 
 if (!this.checkValues(new String[] { nome, endereco, email, cpf, telefone, dtn })) }
 	response.sendRedirect("erro.html");	
 }
 else {
 	response.sendRedirect("efetuado.html");
 }

Vendo este exemplo fiz uma tranposição, que é o q coloquei em cima
Essa é a msg de erro:
Syntax error on tokens, delete these tokens

rodrigo_gomes

o exemplo acima funfa perfeitamente…
acho que o seu tava faltando um new na chamada do método

//DENTRO DE KEYLISTENER

public void keyPressed(KeyEvent e) {
	if(e.getKeyCode() ==  KeyEvent.VK_ENTER) {
		if(!this.checkValues (new JTextField[] {txtNome, txtFantasia, txtRg, txtCpf, txtSenha}))
		{
			JOptionPane.showMessageDialog(null, "CAMPO OBRIGATÓRIO");
		} else {
			tabbedPaneFuncionario.setSelectedComponent(pnlEndereco);
		}
	}
}

//VERIFICA
public boolean isEmpty(JTextField value) {
	return (value == null || value.equals(""));
}

//VARRER
public boolean checkValues(JTextField[] v) {
	for (int i = 0; i < v.length; i++) {
		if (this.isEmpty(v[i])) {
			return false;
		}
		v[i].grabFocus();
	}
	return true;
}
Jonatas

Cara que burrice na verdade não tava faltando so o new…
o new eu colocava e continuava a dar erro…
Nessa confusão de paramentros, chaves, parentes, … me emboloei todinho e esqueci de fechar um parenteses…
Agora so nao ta funcionando, mas vou dar uma olhada …
Qualquer coisa voltarei a pedir ajuda…

Valeu cara muito obrigado

Criado 27 de maio de 2005
Ultima resposta 27 de mai. de 2005
Respostas 7
Participantes 2