Como fazer essa validação?

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.

[code]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 = {" ", " ", " "};[/code]

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"); }

[code]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);


    }

}[/code]

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"); }

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

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

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.

[quote=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[/quote]

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

[quote=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.[/quote]

ok irei pesquisar, obrigado.