Ciao a tutti,
volevo chiedervi una vostra opinione riguardo l'errore java.lang.NullPointerException che non mi permette il corretto funzionamento del programma. Vi ringrazio per la cortese attenzione.

codice:
import java.util.Scanner;
public class CartoTeck_20 
{static Scanner leggi= new Scanner(System.in); static Prodotto vet[]= new Prodotto[1000];
 static Fornitore f[]= new Fornitore[1000];

	public static void main(String[] args) 
	{int com = 0;
	  
	  do{ System.out.print("I comandi sono i seguenti: \n1-Inserimento nuovo prodotto in negozio " +
	  		"\n2-Approvigionamento di ulteriori quantità di prodotto" + "\n3-Vendita prodotti" +
			  "\n4-Calcolo valore totale merci in magazzino" + "\n5-Visualizzazione scheda prodotto" +
	  		   "\n6-Visualizzazione in base al fornitore" + "\n7-Disponibilita' prodotto\n"); 
		    com=leggi.nextInt();
			switch(com)
			{case 1:
				nuovoProd(); break;
			 case 2:
				rifornimento(); break;
			 case 3:
				vendita(); break;
			 case 4:
				calMerci(); break;
			 case 5:
				scheda(); break;
			 case 6:
				prodForn(); break;
			 case 7:
				disponibilita(); break;
			}
	     }while(com!=0);
	}
    
		public static void nuovoProd()
		{ int i=0;
		   vet[i]=new Prodotto();
		    System.out.print("Inserire codice nuovo prodotto: ");
			vet[i].codiceProdotto=leggi.next();
			System.out.print("Inserire descrizione prodotto: ");
		    vet[i].descrizione=leggi.next();
		    System.out.print("Inserire prezzo d'acquisto:€ ");
		    vet[i].prezzoAcquisto=leggi.nextFloat();
		    System.out.print("Inserire prezzo di vendita:€ ");
		    vet[i].prezzoVendita=leggi.nextFloat();
		    System.out.print("Inserire quantita': ");
		    vet[i].quantitaMag=leggi.nextInt();
		    fornitore();
		    i=i+1;
		    
		 
		}
	    
			public static void rifornimento()
			{String cerca;int quanti=0;int i=0;
			 
				System.out.print("Inserire codice prodotto: ");
				cerca= leggi.next();
				System.out.print("Inserire quantita' prodotto: ");
				quanti= leggi.nextInt();
			
				for(i=0;i<1000;i++)
				{if (cerca.equals(vet[i].codiceProdotto))
				   {vet[i].quantitaMag= quanti+vet[i].quantitaMag;}
				}
			
			}
	        
				public static void vendita()
				{String cerca;int quanti=0;int i=0;
				 
					System.out.print("Inserire codice prodotto: ");
					cerca= leggi.next();
					System.out.print("Inserire quantita' prodotto: ");
					quanti= leggi.nextInt();
				
					for(i=0;i<1000;i++)
					{if (cerca.equals(vet[i].codiceProdotto))
					   {vet[i].quantitaMag= vet[i].quantitaMag-quanti;}
					}
				
				}
	            
					public static void calMerci()
					{int i=0;float valore=0;float valoreTot=0;
					
						for(i=0;i<1000;i++)
						{
							valore= vet[i].prezzoAcquisto * vet[i].quantitaMag;
						    valoreTot=valore+valoreTot;
						}
							System.out.print("Il valore totale delle merci in magazzino e': ");
							System.out.print(valoreTot);
					}
	                
						public static void scheda()
						{String cod;int i=0;
							System.out.print("Inserire il codice prodotto da visualizzare: ");
						    cod=leggi.next();
							    for(i=0;i<1000;i++)
							    { if(cod.equals(vet[i].codiceProdotto))
							         {System.out.print(vet[i].codiceProdotto);
							          System.out.print(vet[i].descrizione);
							          System.out.print(vet[i].prezzoAcquisto);
							          System.out.print(vet[i].prezzoVendita);
							          System.out.print(vet[i].quantitaMag);
							          System.out.print(f[i].ragSoc);
							          System.out.print(f[i].indirizzo);
							          System.out.print(f[i].citta);
							         }
							    	
							    }
						    
						}
						
							public static void prodForn()
							{String nome;int i=0;
							     
							     System.out.print("Inserire ragione sociale fornitore: ");
							     nome=leggi.next();
							      for(i=0;i<1000;i++)
								  { if(nome.equals(f[i].ragSoc))
							         {System.out.print(vet[i].codiceProdotto);
							          System.out.print(vet[i].descrizione);
							          System.out.print(vet[i].prezzoVendita);
							         }
									  
								  }
							
							}
							
								public static void disponibilita()
								{int n=0;int i=0;
									System.out.print("Inserire quantita' minima: ");
								    n=leggi.nextInt();
								    for(i=0;i<1000;i++)
									  { if(vet[i].quantitaMag < n)
								         {System.out.print(vet[i].codiceProdotto);
								          System.out.println(vet[i].descrizione);
								         }
										  
									  }
								 
								
								}
								
									public static void fornitore()
									{int i=0;
										f[i]=new Fornitore();
										System.out.print("Inserire ragione sociale fornitore: ");
									    f[i].ragSoc=leggi.next();
									    System.out.println("Inserire indirizzo fornitore: ");
								        f[i].indirizzo=leggi.next();
								        System.out.println("Inserire citta fornitore: ");
								        f[i].citta=leggi.next();
									}
	
} 

public class Fornitore 
{ String ragSoc; String indirizzo; String citta; 

}

public class Prodotto 
{float prezzoAcquisto=0;float prezzoVendita=0;int quantitaMag=0; String descrizione; String codiceProdotto;

}