Dificuldades na Instanciação de Objetos

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

}

use as tags [code] para postar.

Obrigado.

[quote=markin1]use as tags [code] para postar.

Obrigado.[/quote]

já fiz isso!

Não tem por onde!

cara, aquele teu método view_Lista esta pegando sempre o mesmo objeto… dai ele sempre aparecera com as ultimas coisas que voce adicionou nele… voce deve pegar os itens de dentro da lista…

vlw

é como ja disseram, vc tem que pegar a partir da lista :slight_smile: do jeito que está fazendo sempre vai pegar o ultimo

Hey FCO ltda

vc faz unicsul???

esse codigo é mto familiar^^

por acaso eu tenho um trabalho igualzinho pra entregar na sexta, hahahahhaha

em todo caso:

eu faria esse view_lista assim:

public String view_Lista() {
		String saida = "";
		for (Object o : lista_compra) {
			if (o instanceof item) {
				saida += o.produto.getCodigo() + "\n";
				saida += o.produto.getNome() + "\n";
				saida += o.produto.getPreco() + "\n";
				saida += o.produto.getQuant() + "\n";
				saida += "*******************************\n";
			}
		}
		return saida;
	}

[quote=danielJaponeis]em todo caso:

eu faria esse view_lista assim:

public String view_Lista() { String saida = ""; for (Object o : lista_compra) { if (o instanceof item) { saida += o.produto.getCodigo() + "\n"; saida += o.produto.getNome() + "\n"; saida += o.produto.getPreco() + "\n"; saida += o.produto.getQuant() + "\n"; saida += "*******************************\n"; } } return saida; } [/quote]

eae japones vc por aqui quem diria !