Olá pessoal!
Estou com dificuldades em instanciar o objeto item, tenho uma classe com um metodo main que possui um while incluindo 3 itens no array lista_compra, mas o problema é que ele considera para os tres itens incluidos os dados do ultimo incluido…
Alguem de vocês poderia me dar alguma dica do que pode estar acontecendo…
desde já agradecido!
Abraço…
segue o código:
import java.util.*;
import javax.swing.JOptionPane;
public class Compras {
private ArrayList lista_compra = new ArrayList();
private Cliente cliente;
public Itens_compra item;// = new Itens_compra();;
private NotaFiscal nf;
public boolean addItem(){
item = new Itens_compra();
item.produto.setCodigo(Integer.parseInt(JOptionPane.showInputDialog("Entre com o Código:")));
item.produto.setNome(JOptionPane.showInputDialog("Entre com o Nome:"));
item.produto.setPreco(Float.parseFloat(JOptionPane.showInputDialog("Entre com o Preço:")));
item.setQuant(Integer.parseInt(JOptionPane.showInputDialog("Entre com o Quantidade:")));
lista_compra.add(item);
return true;
}
public String view_Lista(){
String saida = "";
for(int i=0; i<lista_compra.size();i++){
saida += item.produto.getCodigo()+"\n";
saida += item.produto.getNome()+"\n";
saida += item.produto.getPreco()+"\n";
saida += item.produto.getQuant()+"\n";
saida += "*******************************\n";
}
return saida;
}
public boolean excluir_Item(Object cod){
JOptionPane.showMessageDialog(null,item.produto.consultar(cod));
if(item.produto.consultar(cod) != null){
JOptionPane.showMessageDialog(null,item.produto.consultar(cod));
lista_compra.remove(item.produto.consultar(cod));
//imprimiArqTxt();
return true;
}
return false;
}
public boolean fechar_Pedido(){
nf = new NotaFiscal();
String saida = "Nota_Fiscal"+Math.random()+".html";
nf.gerarHtml(saida,lista_compra,cliente);
return false;
}
public int getQuant(){
return lista_compra.size();
}
public Produto consultar(Object cod){
try {
for(int i=0; i<getQuant(); i++){
Produto p = (Produto)lista_compra.get(i);
if(p.getCodigo() == Integer.parseInt(cod.toString())){
return p;
}
}
return null;
}
catch(Exception a){
return null;
}
}
/*public Itens_compra setGetItens_compra(int op){
if(op == 1){
itens.produto.setCodigo(Integer.parseInt(JOptionPane.showInputDialog("Entre com o Código:")));
itens.produto.setNome(JOptionPane.showInputDialog("Entre com o Nome:"));
itens.produto.setPreco(Float.parseFloat(JOptionPane.showInputDialog("Entre com o Preço:")));
itens.produto.setQuant(Integer.parseInt(JOptionPane.showInputDialog("Entre com o Quantidade:")));
}else{
itens.produto.setCodigo(Integer.parseInt(JOptionPane.showInputDialog("Entre com o Código:")));
}
return itens;
}*/
public class Itens_compra{
private int quant;
private Produto produto;
public Itens_compra(){
produto = new Produto();
}
public int getQuant() {
return quant;
}
public void setQuant(int quant) {
this.quant = quant;
}
}
}
do jeito que está fazendo sempre vai pegar o ultimo