Como fazer essa validação?

5 respostas
GLucio42

Olá estou fazendo um programa de cadastro de cliente,recuperando o cliente salvo através de um Id ,porém não estou usando banco de dados (estou fazendo isso apenas para treinar o uso do JTable). No entanto ele esta cadastrando 2 clientes com a mesma matricula,nome e situação .
gostaria de saber como eu faço para não aceitar isso.

O programa é composto por uma classe Cliente.java e por uma interface chamada CadCliente.java ,onde no Cliente.java ficam todos os metodos get e set de matricula,
nome,situacao.

package interfaces;

import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import modelo.Cliente;

public class Cadcliente extends javax.swing.JFrame {

    Cliente idCliente;
    ArrayList<Cliente> clientes = new ArrayList();
    Object[] obtab = {" ", " ", " "};

Botão Salvar

private void salvarActionPerformed(java.awt.event.ActionEvent evt) {                                       
        Validar();
        Salvar();     
    }

Botão Consultar (mostra no JTable todos os clientes cadastrados)

private void consultarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        Consultar();
    }
/------/
public void Salvar() {
            idCliente = new Cliente();
            idCliente.setMatricula(Integer.parseInt(matricula.getText()));
            idCliente.setNome(nome.getText());
            idCliente.setSituacao(situacao.getText());
            clientes.add(idCliente);
            JOptionPane.showMessageDialog(null, "Cliente Salvo");
        }
public void Consultar() {

        DefaultTableModel dtm = (DefaultTableModel) tabela.getModel();

        for (Cliente cli : clientes) {

            obtab[0] = cli.getNome();
            obtab[1] = cli.getMatricula();
            obtab[2] = cli.getSituacao();

            dtm.addRow(obtab);


        }

    }
public void Validar() {
        if (matricula.getText().isEmpty()) JOptionPane.showMessageDialog(null, "campo matricula vazio");
        if (nome.getText().isEmpty())      JOptionPane.showMessageDialog(null, "campo nome vazio");
        if (situacao.getText().isEmpty())  JOptionPane.showMessageDialog(null, "campo situacao vazio");
    }

5 Respostas

drsmachado

1 - Isso não é validação, logo, o título do tópico está errado.
2 - Métodos, em java (assim como classes e atributos) seguem a especificação javaBeans, que diz que seus nomes devem ser minúsculos.
3 - Seja mais claro, qual o trecho de código, dos que você postou, faz a inserção do objeto na JTable?
4 - Não use, de maneira alguma, DefaultTableModel

GLucio42

Sou iniciante ainda, no java e no GUJ.
Faço a inserção do JTable no Consultar()

drsmachado

Outro detalhe, o método deve ter, como nome, a indicação da sua razão de existir. “consultar” não me diz que naquele método elementos serão adicionados, enfim…
Sugiro que você comece esquecendo a DefaultTableModel. Quer se sair bem e aprender direito, pesquise o uso de uma implementação para AbstractTableModel, vai ser bem mais simples, rápido e menos traumático.

GLucio42

drsmachado:
1 - Isso não é validação, logo, o título do tópico está errado.
2 - Métodos, em java (assim como classes e atributos) seguem a especificação javaBeans, que diz que seus nomes devem ser minúsculos.
3 - Seja mais claro, qual o trecho de código, dos que você postou, faz a inserção do objeto na JTable?
4 - Não use, de maneira alguma, DefaultTableModel

1-qual seria o tópico?
2-ok.
3- Faço a inserção do JTable no Consultar()
4-ok.

GLucio42

drsmachado:
Outro detalhe, o método deve ter, como nome, a indicação da sua razão de existir. “consultar” não me diz que naquele método elementos serão adicionados, enfim…
Sugiro que você comece esquecendo a DefaultTableModel. Quer se sair bem e aprender direito, pesquise o uso de uma implementação para AbstractTableModel, vai ser bem mais simples, rápido e menos traumático.

ok irei pesquisar, obrigado.

Criado 10 de maio de 2013
Ultima resposta 10 de mai. de 2013
Respostas 5
Participantes 2