salve a tutti , questo e' il mio primo 3d su questo forum
, ho cominciato da un paio di giorni ad aggiungere ad i miei programmini l' interfaccia grafica utilizzando awt , nello specifico questo programma deve gestire l' elenco di auto presenti in un concessionario : inserimento , rimozione , vedere la quantita' di auto nuove e usate ed il totale , tutta roba abbastanza semplice 
il problema arriva quando devo eliminare un' auto dall' elenco , io assegno ad un bottone (dove prima si inserisce il numero di matricola) la funzione per rimuovere questa benedetta auto (geany compila , tutto ok ) ma quando vado a rimuoverne una ecco che .... puff un chilometro di exception
codice:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Concessionario.rimuovi(Concessionario.java:23)
at Extra.actionPerformed(Extra.java:57)
at java.awt.Button.processActionEvent(Button.java:409)
at java.awt.Button.processEvent(Button.java:377)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
vi allego pure il codice della funzione per la rimozione ...
codice:
public boolean rimuovi(String mat) {
boolean ok=false;
for(int i=0;i<v.length;i++){
if(mat==v[i].getMatricola()){
v[i]=null;
ok=true;
for(int p=i;p<v.length;p++){
v[p]=v[p+1];
v[p+1]=null;
}
}
}
return ok;
}
grazie per le future risposte , aspetto con ansia