Gente, eu sei que tem um monte de posts aqui sobre Iterator, e eu já vi muitos deles. Mas nenhum resolveu meu problema… Não sei qual é o erro no meu código e nem SE tem algum erro. Pode só estar faltando um detalhe. Enfim… preciso fazer um programa que envolva Swing e Collections. Um programa que mostre uma telinha com os campos para o usuário digitar: Nome, Quantidade e Preço.
Preciso fazer os botões: Incluir, Alterar, Remover, Mostrar produtos, Vender e Verificar dados de um produto.
Vou colar aqui o Enunciado inteiro, ok?
“Descrição do trabalho: Você deverá criar um programa em JAVA utilizando SWING e COLLECTION que auxilie o ?dono da loja? a resolver o problema apresentado a seguir. Existe uma loja de departamento com diversos produtos. O dono da lojanão sabe ao certo quantos tipos de produtos existem e por isto resolveu cadastrar todos os tipos de produto. A operação de cadastramento implica nas funcionalidades de inclusão, alteração e exclusão do produto. Os produtos possuem três características principais (atributos): nome, quantidade em estoque e preço. Uma vez que todos os produtos estejam cadastrados no sistema o dono deseja ver na tela os produtos em ordem alfabética de seus nomes. O dono da loja deseja que o programa realize uma venda. Isto ocorrerá da seguinte forma: primeiro o atendente procura um determinado produto pelo nome. O sistema mostra o preço do produto na tela. O atendente confirma que é o produto correto e o sistema abate a quantidade do produto em uma unidade. Obs: para simplificação do problema trabalhe com um número reduzido de produtos.”
OK, agora o meu código como está até agora. Eu já fiz a parte de incluir, e estou impacado nos loops necessários para alterar um dado, remover um dado, etc… (Pra alterar, eu preciso que o usuário digite no espaço ‘nome’ o nome do produto e clique no botão Alterar. Então os dados do produto aparecerão na tela e ele simplesmente alterará o que quiser, clicando em incluir posteriormente. Vai dar certo, isso? O caso de Remover é semelhante: o usuário digita o nome do produto que quer remover e clica em Remover… e pronto, o produto é excluído do meu ArrayList.) Muita coisa desse programa eu fiz com ajuda de um colega que manja mto de JAVA, mas que não tem tempo de me ajudar.
[code]package loja;
...
ArrayList<Produto> loja = new ArrayList<Produto>(); Produto p = new Produto();
Iterator busca = new ArrayList(loja).iterator();
...
private JButton getRemover() {
if (remover == null) {
remover = new JButton();
remover.setBounds(new Rectangle(234, 69, 87, 22));
remover.setText("Remover");
remover.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if (nome.getText().equals("")) {
JOptionPane.showMessageDialog(null,"Digite o nome do produto cujos dados serão removidos do sistema");
} else {
while (busca.hasNext()){
Produto p = (Produto) busca.next();
if (p.getNome().equals(nome.getText())) {
loja.remove(p);
JOptionPane.showMessageDialog(null,"O produto selecionado foi removido do sistema");
} else {
JOptionPane.showMessageDialog(null,"O nome do produto especificado não existe no sistema. Tente novamente");
return;
}
}
}
}
});
}
return remover;
}
private JButton getAlterar() {
if (alterar == null) {
alterar = new JButton();
alterar.setBounds(new Rectangle(235, 39, 86, 23));
alterar.setText("Alterar");
alterar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if (nome.getText().equals("")) {
JOptionPane.showMessageDialog(null,"Digite o nome do produto cujos dados serão alterados");
} else {
while (busca.hasNext()){
Produto p = (Produto) busca.next();
if (p.getNome().equals(nome.getText())) {
quantidade.setText(Integer.toString(p.getQuantidade()));
preco.setText(Double.toString(p.getPreco()));
}else{
JOptionPane.showMessageDialog(null,"O nome do produto especificado não existe no sistema. Tente novamente");
return;
}
}
}
}
});
}
return alterar;
}
private JButton getMostrar() {
if (mostrar == null) {
mostrar = new JButton();
mostrar.setBounds(new Rectangle(227, 129, 136, 32));
mostrar.setText("Mostrar produtos");
mostrar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// Collections.sort(loja);
}
});
}
return mostrar;
}
private JButton getVender() {
if (vender == null) {
vender = new JButton();
vender.setBounds(new Rectangle(235, 101, 85, 21));
vender.setText("Vender");
vender.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if (nome.getText().equals("")) {
JOptionPane.showMessageDialog(null,"Digite o nome do produto que deseja vender e verifique se o preço está correto. Se não estiver, altere-o.");
} else {
while (busca.hasNext()){
if (loja.contains(nome.getText())) {
}
}
}
nome.setText("");
quantidade.setText("");
preco.setText("");
}
});
}
return vender;
}
private JButton getVer() {
if (ver == null) {
ver = new JButton();
ver.setBounds(new Rectangle(5, 130, 210, 29));
ver.setText("Verificar dados de um produto");
ver.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if (nome.getText().equals("")) {
JOptionPane.showMessageDialog(null,"Digite o nome do produto cujos dados você deseja verificar.");
} else {
while (busca.hasNext()){
if (loja.contains(nome.getText())) {
quantidade.setText(Integer.toString(p.getQuantidade()));
preco.setText(Double.toString(p.getPreco()));
}else{
JOptionPane.showMessageDialog(null,"O nome do produto especificado não existe no sistema. Tente novamente");
return;
}
}
}
}
});
}
return ver;
}
...
[/code]
Classe auxiliar:
[code]package loja;
public class Produto {
private String nome;
private int quantidade;
private double preco;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
}
[/code]
Espero que possam me ajudar, sinceramente