Java.lang.NullPointerException

killyox -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'ai un problème dans mon code. Je débute en programmation et je suis entrein de programmer un programme qui permet de faire la gestion de dossier. Les dossiers sont stocké dans une ArrayList et ils sont définie via une interface graphique.

Le problème est que quand je veux rechercher/supprimer un dossier il me sort tout plein d'erreur, que voici:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at FenetrePrincipale.actionPerformed(FenetrePrincipale.java:129)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


L'erreur vient de cette partie de mon code ( la deuxième ligne):
			doss=carton.recherche(numero,nom,ref);
			saisiNumero.setText(doss.getNumeroDossier());


La fonction recherche est la suivante:
public Dossier  recherche(String numero, String nom, String ref){
		Dossier doss ,doss1=null;
		boolean trouve =false ;
		Iterator<Dossier> it = ensembleDossier.iterator();
		
		while(it.hasNext()){
			if(!trouve){
				doss = it.next();
				if(numero==doss.getNumeroDossier() || nom == doss.getNomAssure() || ref==doss.getRefIntervenant()){
					doss1 =doss;
					trouve = true;
					}	
			}else{doss1=null;}
		}
		if(!trouve){JOptionPane.showMessageDialog(null,"Aucun dossier n'a été trouvé sous ces références");} 
		return doss1;
	}


Pouvez vous me dire d'ou vient mon erreur ? Merci d'avance

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
NullPointerException signifie qu'un des objets que tu utilises vaut null alors qu'il doit être initialisé.

Vu le message d'erreur, le problème est dans ta méthode actionPerformed (ligne 129), pas dans la méthode recherche que tu nous donne.

Donc si le code "saisiNumero.setText(doss.getNumeroDossier());" est bien cette ligne 129 dans actionPerformed, alors tu as soit saisiNumero==null, soit doss==null

Dans les deux cas, il faut donner une valeur à la variable concerné avant de faire un appel de méthode.
0
killyox
 
Merci de ta réponce. Je vois mieux d'où vient mon erreur. Dans ma méthode recherche j'initialise doss = null.

L'erreur doit surrment être produite à partir d'ici.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
En effet, une référence à null signifie qu'il n'y a aucun objet associé à la variable, il est donc impossible d'utiliser quelque méthode que ce soit !

Dans ton cas tu cherches à récupérer le numéro d'un dossier, il faut donc que ce dossier existe, c'est logique, mais tu ne l'as pas fait...
0