Bom pessoal, tô com uma duvida em um exercício que estou fazendo, se alguém puder me mostrar onde está o erro agradeço.
Questão:
[quote]O objetivo deste trabalho é implementar programa simples contendo uma lista encadeada de
clientes. As informações dos clientes são coletados a partir de uma interface gráfica. Os dados do
clientes são adquiridos por um programa simples com funcionalidades de inserção e busca de
clientes. As informações coletadas do cliente são nome, endereço e CPF.
A interface gráfica do programa já esta implementada na classe Cadastramento, falta implementar
as classes Lista e Cliente. Não é necessário adicionar nenhum método novo, apenas atributos. A
classe Cliente deve conter como atributo uma referência para o próximo cliente e também atributos
com informações sobre o nome, endereço e cpf do cliente. O construtor do cliente deve fazer a
inicialização de todos os atributos.
A classe lista contém um construtor, métodos insere, buscaCpf e buscaNome. Todos estes métodos
estão vazios e precisam ser implementados. A classe lista precisa de um atributo que referencia o
primeiro elemento da lista. As inserções devem ser feitas sempre no início da lista. As busca sempre
retornam o objeto encontrado ou o elemento nulo (null) quando nenhum cliente for encontrado.
Depois de implementado e funcionando o método insere. Faça um incremento neste método
verificando se o cpf informado já esta cadastrado. Se tiver, então o cliente não deve ser inserido e o
método deve retorna falso (false);[/quote]
Consegui fazer uma boa parte porém a verificação do CPF sempre retorna um valor cadastrado independente de está ou não, aí que se encontra minha duvida principal.
Segue o código que fiz:
Cadastramento:
[code]import java.awt.;
import java.awt.event.;
import javax.swing.*;
public class Cadastramento
{
private static JTextField campoNome;
private static JTextField campoEndereco;
private static JTextField campoCpf;
private static JButton botaoInseri;
private static JButton botaoBusca;
private static Lista clientes;
private static JLabel statusLabel;
public final static boolean RIGHT_TO_LEFT = false;
public static void limpaCampos()
{
campoNome.setText("");
campoEndereco.setText("");
campoCpf.setText("0");
}
public static void addComponentsToPane(Container contentPane)
{
if (RIGHT_TO_LEFT)
{
contentPane.setComponentOrientation(
ComponentOrientation.RIGHT_TO_LEFT);
}
//Any number of rows and 2 columns
contentPane.setLayout(new GridLayout(0,2));
statusLabel = new JLabel(" ");
contentPane.add(new JLabel("Nome: "));
campoNome = new JTextField(15);
contentPane.add(campoNome);
contentPane.add(new JLabel("Endereço: "));
campoEndereco = new JTextField(15);
contentPane.add(campoEndereco);
contentPane.add(new JLabel("CPF: "));
campoCpf = new JTextField(15);
contentPane.add(campoCpf);
botaoInseri = new JButton("Inseri");
limpaCampos();
botaoInseri.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String nome = campoNome.getText();
String endereceo = campoEndereco.getText();
long cpf = 0;
boolean cpfErro = false;
try
{
cpf = Long.parseLong(campoCpf.getText());
}
catch(Exception x )
{
statusLabel.setText("CPF inválido!");
cpfErro = true;
}
Cliente c = new Cliente();
c.setNome(nome);
c.setEndereco(endereceo);
c.setCpf(cpf);
if ( clientes.insere(c) )
{
statusLabel.setText(nome+" inserido com sucesso!");
limpaCampos();
}
else if (! cpfErro)
statusLabel.setText(c.getCpf()+" CPF já cadastrado!");
}
});
botaoBusca = new JButton("Busca");
botaoBusca.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//limpaCampos();
String nome = campoNome.getText();
Cliente c = clientes.buscaNome(nome);
if (c == null)
{
statusLabel.setText(nome+" não encontrado!");
}
else
{
statusLabel.setText(c.getNome()+" encontrado!");
campoNome.setText(c.getNome());
campoEndereco.setText(c.getEndereco());
campoCpf.setText(Long.toString(c.getCpf()));
}
}
});
contentPane.add(botaoInseri);
contentPane.add(botaoBusca);
contentPane.add(new JLabel("Status: "));
contentPane.add(statusLabel);
}
private static void createAndShowGUI()
{
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("Mini Sistema de Cadastramento!");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Set up the content pane and components in GridLayout
addComponentsToPane(frame.getContentPane());
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args)
{
// cria a lista
clientes = new Lista();
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
[/code]
Cliente:
[code]public class Cliente
{
private String nome, endereco;
private long CPF;
private Cliente prox;
public void setProximo(Cliente p)
{
prox = p;
}
void setNome(String n)
{
nome = n;
}
void setEndereco(String e)
{
endereco = e;
}
void setCpf(long c)
{
CPF = c;
}
String getNome()
{
return nome;
}
String getEndereco()
{
return endereco;
}
long getCpf()
{
return CPF;
}
public Cliente getProximo()
{
return prox;
}
}
[/code]
Lista:
public class Lista
{
public Lista()
{
}
boolean insere(Cliente c)
{
return false;
}
Cliente buscaCpf(long c)
{
return null;
}
Cliente buscaNome(String s)
{
return null;
}
}
Não entendí como implementar o método de busca, se alguém puder me informar agradeço
Obrigado.