Validar campos diferentes em uma aplicação Swing

2 respostas
arthurgon

Olá gente;

Estou com uma dúvida. Tenho quatro campos do tipo TextField em uma tela. para cada campo sera preenchida uma
informação diferente. Se o usuário esquecer de preencher um dos campos, deverá retornar uma mensagem de erro do campo específico. Minha dúvida é que o método só funciona para o primeiro campo. A partir do segundo, mesmo que o usuário não preencha nada a aplicação prossegue. Ele só reconhece o primeiro "IF". Os outros a aplicação não testa se está ou não preenchido.

Este é o código:

// /A FUNÇÃO DESSE MÉTODO É VALIDAR TODOS OS CAMPOS PREENCHIDOS
	// /DEVIDAMENTE
	private void validaCamposPreenchidos() {
		Pattern soNumeros = Pattern.compile("^[1-9]+[0-9]*$");
		// Valor presente no campo

		String valor = txtCodigoPrestador.getText();
		String valor1 = txtNomePrestador.getText();

		String valor2 = txtRaiz.getText();
		jTextRaizMedium.getText();
		jTextMediano.getText();
		jTextFilial.getText();
		jTextFim.getText();

		// Verificando se o valor não é nulo e se encaixa com a expressão
		if (valor == null || !soNumeros.matcher(valor).matches()) {
			JOptionPane.showMessageDialog( // Caixa de mensagem
					null,// janela, // Janela da aplicação (opcional, pode
					// ser null)
					"Digite o código corretamente", // Mensagem
					"Erro de validação", // Título da caixa de mensagem
					JOptionPane.ERROR_MESSAGE // Ícone da caixa de mensagem
					);

		}

		// Verificando se o valor não é nulo e se encaixa com a expressão

		if (valor1 == null || !soNumeros.matcher(valor).matches()) {
			JOptionPane.showMessageDialog( // Caixa de mensagem
					null,// janela, // Janela da aplicação (opcional, pode
					// ser null)
					"Digite o nome corretamente", // Mensagem
					"Erro de validação", // Título da caixa de mensagem
					JOptionPane.ERROR_MESSAGE // Ícone da caixa de mensagem
					);

		}

		// Verificando se o valor não é nulo e se encaixa com a expressão
		if (valor2 == null || !soNumeros.matcher(valor).matches()) {
			JOptionPane.showMessageDialog( // Caixa de mensagem
					null,// janela, // Janela da aplicação (opcional, pode
					// ser null)
					"Digite o CNPJ corretamente", // Mensagem
					"Erro de validação", // Título da caixa de mensagem
					JOptionPane.ERROR_MESSAGE // Ícone da caixa de mensagem
					);

		}

	}

Se alguém souber como me ajudar agradeço.

Valeu gente.

2 Respostas

L

1 - o código

jTextRaizMedium.getText();  
 jTextMediano.getText();  
 jTextFilial.getText();  
 jTextFim.getText();

não está fazendo nada aí no seu sistema…
apenas pegando o texto digitado armazenando em lugar nenhum

2 - a variável valor, valor1 etc… nunca vão ser null … pode ser uma string vazia mas não null
então na realidade ele só faz a comparação do !soNumeros.matcher(valor).matches() para os tres ifs

3 -Porque vc não faz os ifs individuais de acordo com cada componente???

tipo assim

if (!soNumeros.matcher(valor).matches()){
      JOptionPane.showMessageDialog(this,"bla bla bla");
      return; 

   }else if (valor1.trim().length() == 0 ){
      JOptionPane.showMessageDialog(this,"bla bla bla");
      return; 

   }

//....continua.....
arthurgon

Valeu amigão…funcionou.

Obrigado.

Criado 10 de julho de 2008
Ultima resposta 10 de jul. de 2008
Respostas 2
Participantes 2