Erro null.pointer.Exeption

4 respostas
xivan
public static void incluirIngRec(){
		int codigoRec = Integer.parseInt(JOptionPane.showInputDialog("Digite o código da receita"));
		int codigoIng = Integer.parseInt(JOptionPane.showInputDialog("Digite o código do ingrediente"));
		double ins = 0;
		String aux = "";
		String aux1 = "";
		String aux2 = "";
		String achou1 = null;
		String achou2 = null;
		for(int i=0;i<1000;i++){
			if(vetRec[i]!=null && codigoRec==vetRec[i].getCodigo()){
				aux1 = "RECEITA:\n" + "Codigo: " + vetRec[i].getCodigo() + "\n" +
						"Nome: " + vetRec[i].getNome() + "\n" + 
						"Autor: " + vetRec[i].getAutor() + "\n" +
						"Data: "+ vetRec[i].getData() +"\n";
			achou1 = "Encontrado";	
			}
			
			if(vetIng[i]!=null && codigoIng==vetIng[i].getCodigo()){
				aux2 = "\nINGREDIENTE: "+"\nCodigo: " + vetIng[i].getCodigo() + "\n" +
						"Nome: " + vetIng[i].getNome() + "\n" + 
						"Quantidade: " + vetIng[i].getQuantidade();
			achou2 = "Encontrado";
			}
		}
		aux = aux1 + aux2;
	if(achou1 != null && achou2 != null){	
		ins = Double.parseDouble(JOptionPane.showInputDialog(aux + "\n" + "Digite a dosagem: "));
		for(int i=0;i<1000;i++){
				if(codigoIng==vetIng[i].getCodigo() && ins>vetIng[i].getQuantidade()){
					JOptionPane.showMessageDialog(null,"Quantidade insuficiente");
					menuIngredRec();
				}
		}
		for(int i=0;i<1000;i++){
				if(codigoIng==vetIng[i].getCodigo() && ins<=vetIng[i].getQuantidade()){	
					String nome = vetIng[i].getNome();
					vetRec[i].Ingredientes(nome,ins);
					JOptionPane.showMessageDialog(null, "RECEITA:\n" + "Codigo: " + vetRec[i].getCodigo() + "\n" +
						"Nome: " + vetRec[i].getNome() + "\n" + 
						"Autor: " + vetRec[i].getAutor() + "\n" +
						"Data: "+ vetRec[i].getData() + "\n" + vetRec[i].todosIngredientes());
					menuIngredRec();
				}	
		}
		}else{
				JOptionPane.showMessageDialog(null,"INGREDIENTE OU RECEITA NÃO ENCONTRADOS");
			menuIngredRec();
			}
		}

Estou fazendo um código para incluir ingredientes em uma receita.. ele dá null.pointer na linha em negrito. Eu consegui antes fazer rodar mas ele só funciona se o ingrediente for de codigo 1, alguém pode me ajudar? o método Rec[i].Ingredientes(); Creio que esteja correta mas, vou postá-lo abaixo. ERRO NA LINHA 30

public void Ingredientes(String nome, double ins){
		for(int i=0;i<100;i++){
			if(vet[i]==null){
				vet[i] = new Receita();
				vet[i].setIngreds(nome);
				vet[i].setDosagem(ins);
			break;
			}
		}
	}
Porfavor me ajudem!

4 Respostas

mduques

Aonde vc ta instanciando esse cara: vetIng??? Ele está null ou os seus elementos estão.

xivan

o vetIng e o VetReg estao instanciados no programa principal… ai coloquei so o metodo!

static Ingrediente vetIng[] = new Ingrediente[1000];
static Receita vetRec[] = new Receita[1000];
mduques

vc popula vetIng por aqui? quem é vet???
Não seria 1000 aqui?

public void Ingredientes(String nome, double ins){ for(int i=0;i<100;i++){ if(vet[i]==null){ vet[i] = new Receita(); vet[i].setIngreds(nome); vet[i].setDosagem(ins); break; } } }

xivan

Desculpe a falta de informações, porque está meio grande pra postar td, mas o vetIng, seria onde eu armazenaria todos os ingredientes, que é inserido por pela classe ingrediente, ja o vet[i] é o vetor que insere um ingrediente em determinada receita, portanto está na classe receita, por isso é 100.

Criado 11 de dezembro de 2008
Ultima resposta 11 de dez. de 2008
Respostas 4
Participantes 2