cs_nassr
Messages postés58Date d'inscriptionmardi 28 juillet 2009StatutMembreDernière intervention24 mai 2010
-
28 juil. 2009 à 16:38
cs_nassr
Messages postés58Date d'inscriptionmardi 28 juillet 2009StatutMembreDernière intervention24 mai 2010
-
30 juil. 2009 à 18:06
Slt
J'ai un probleme au niveau de mon application je voudrais faire un teste, je dois saisir dans des jTexField et que ma saisie doit respecter une regle c'est que la somme de certaine jTextfield doit etre egale a jTextField 1 alors je vous montre mon code.
int index = jTable1.getSelectedRow();
Float var1,var2,var3,var4,var5,var6,var7,var;
if (! (jTextField2.getText().equals("")))
var1=Float.valueOf(jTextField2.getText());
else
var1=null;
if (! (jTextField3.getText().equals("")))
var2=Float.valueOf(jTextField3.getText());
else
var2=null;
if (! (jTextField4.getText().equals("")))
var3=Float.valueOf(jTextField4.getText());
else
var3=null;
if (! (jTextField5.getText().equals("")))
var4=Float.valueOf(jTextField5.getText());
else
var4=null;
if (! (jTextField6.getText().equals("")))
var5=Float.valueOf(jTextField6.getText());
else
var5=null;
if (! (jTextField7.getText().equals("")))
var6=Float.valueOf(jTextField7.getText());
else
var6=null;
if (! (jTextField8.getText().equals("")))
var7=Float.valueOf(jTextField8.getText());
else
var7=null;
var = var2+var3+var4+var5+var6+var7;
if (var==var1){
QuittancierGeneral.updateQg(jTextField1.getText(),var1,var2,var3,var4,var5,var6,var7, Integer.parseInt(matrix[index][0].toString() ));
initJtable();
validate();
jPanel2.setVisible(false);
}
else{
JOptionPane.showMessageDialog(null, "ERREUR, vérifier votre saisie!!", "Avertissement", JOptionPane.ERROR_MESSAGE);
}
}
Mais je reçois une erreur de type
exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
l'erreur est indiqué au niveau de cette ligne
var = var2+var3+var4+var5+var6+var7;
SVP es que quelqu'un peut me dire qu'elle est le pb. je signale que je suis un debutant en programmation.
A voir également:
Exception in thread "thread-2" java.lang.nullpointerexception
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 28 juil. 2009 à 17:16
Salut,
tu devrais plutôt mettre var 0 au lieu de var null. Si tu as cette exception c'est que tu as une variable qui est null...
De plus je te conseille aussi d'initialiser tes variables.
The possible meet the impossible to become the possimpible !!
cs_nassr
Messages postés58Date d'inscriptionmardi 28 juillet 2009StatutMembreDernière intervention24 mai 2010 28 juil. 2009 à 22:58
mais si vous remarquez var est une variable de type float donc elle n'accepte pas comme initialisation var=0 'incompatible type' c'est l'erreur qu'il affiche
j'attend toujour la reponse SVP
cs_nassr
Messages postés58Date d'inscriptionmardi 28 juillet 2009StatutMembreDernière intervention24 mai 2010 28 juil. 2009 à 23:27
merci pour votre reponse c'etait util j'ai jamais vue cette initialisation
mais j'ai toujour l'erreur java.lang.NullPointerException
je ne sais pas d'ou vient le probleme je suis bloqué svp quelqu'un m'aide
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 28 juil. 2009 à 23:57
Toutes tes variables de type Float sont initialisées avec "0F"?
Tu as un débugger ? regarde la valeur de chaque variable de la ligne :
var = var2+var3+var4+var5+var6+var7;
A mon avis elles sont surement toutes nulles.
Ce lien te montre une classe qui pourrait t'être utile.
PS: Désolé je n'ai rien aucun outils pour effectuer des test !!!
The possible meet the impossible to become the possimpible !!
cs_nassr
Messages postés58Date d'inscriptionmardi 28 juillet 2009StatutMembreDernière intervention24 mai 2010 29 juil. 2009 à 02:38
oui j'ai initialiser toutes mes variables mais toujour le meme probleme je vais voir cette classe si elle serait utile. en tous cas merci pour votre aide
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 29 juil. 2009 à 03:00
Enlève tout tes else {var = null;} cela sera déjà plus clair si tu as initialisés correctement tes variables, cela ne posera aucun souci et cela écartera aussi le fait que ta variable puisse prendre une autre valeur que celle contenue dans ta jTextField.
The possible meet the impossible to become the possimpible !!
cs_nassr
Messages postés58Date d'inscriptionmardi 28 juillet 2009StatutMembreDernière intervention24 mai 2010 29 juil. 2009 à 18:30
premierement merci pour votre reponse c'est vrais qu'elle m'a resolus le probleme de "java.lang.NullPointerException "
mais si vous remarquer, j'effectue un test si var==var1 il va effectuer l'ajout sinon il va afficher un message d'erreur. le probleme c'est qu'il affiche toujour le message d'erreur meme si var==var1,
j'ai fait un
System.out.println(var);
System.out.println(var1);
//sachant que var1 et var sont des valeur saisit du clavier
il m'affiche la meme valeur(var=var1) mais le message d'erreur apparait toujour.
Es qu'il ya une autre possibilité pour faire ce test. merci
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 29 juil. 2009 à 20:26
Salut,
tu as la méthode "compareTo" de la classe Float!
Si tu affiches toujours la boîte de dialogue d'erreur c'est que les valeurs sont différentes !! Donc ta comparaison n'est pas la bonne...
Tes "println" sont avant le test (var == var1)??
The possible meet the impossible to become the possimpible !!
cs_nassr
Messages postés58Date d'inscriptionmardi 28 juillet 2009StatutMembreDernière intervention24 mai 2010 29 juil. 2009 à 23:01
SVP j'ai chercher partous cette methode compareTo j'ai trouver des exemples mais lorsque je fait applet a cette methode il ne la conait pas .
vous pouvait me donner un exemple.
cs_nassr
Messages postés58Date d'inscriptionmardi 28 juillet 2009StatutMembreDernière intervention24 mai 2010 30 juil. 2009 à 00:45
je vous remercie bcp pour votre soutiens c'est bien marché j'ai chercher un exemple pour la methode compareTo que j'ai utilisé en fin le pb est résolus.
vraiment ce forum m'a facilité la programmation surtout que parfois on rencontre des problemes où on reste bloqué meme 3 jours ou plus mais avec l'aide des personnes comme vous et d'autre ca ne peut etre pas le cas.
en plus ca renforce nos acquis au niveau de la programmation.
en tous cas merci d'avoir m'aider.
reponse acceptée!!!!!
Madvin
Messages postés123Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention26 août 20123 30 juil. 2009 à 14:43
Salut,
Juste une précision pour vous éclairer un peu plus...
Ta comparaison "var==var1" est évaluée à TRUE si et seulement si var et var1 sont les mêmes objets.
En effet, var et var1 sont typés par Float, qui est une classe héritant d'Object.
Or, pour toute variable typée par une classe héritant d'Object, l'opérateur "==" effectue une comparaison sur les pointeurs des objets et pas sur les valeurs de leurs attributs. Pour pouvoir faire une comparaison des objets selon leurs valeurs spécifiques, il faut implémenter et utiliser la méthode "equals" héritée de la classe Object.
Donc dans ton cas, il fallait comparer tes objets Float comme ceci : "var.equals(var1)" qui renvoie TRUE si et seulement si la valeur du flottant stockée par l'objet "var" est la même que celle stockée par l'objet "var1".
C'est une erreur typique, très fréquente...
Par contre, ta comparaison "var==var1" aurait fonctionné si tes variables "var" et "var1" étaient typées par le type primitif "float".
En effet, tout type primitif (int, float, long, etc...) n'héritant pas de la classe "Object", les comparaisons s'effectuent directement grâce aux opérateurs (<, ==, !=, >, <=, etc...).
Pour simplifier, on pourrait dire que les variables typées par un type primitif ne sont pas des objets, mais juste des valeurs.
C'est d'ailleurs pour ça qu'à la base Java n'était pas un langage dit "tout objet", car le langage pouvait manipuler des variables qui ne référençaient pas des instances de la classe Object.
La méthode "compareTo" a à peu près le même rôle que "equals", sauf qu'elle permet de comparer des objets, pas seulement sur leur égalité : à savoir plus petit, égal, ou plus grand.
Dans ton cas donc, "var.equals(var1)" renvoie la même valeur que "var.compareTo(var1) == 0". Cependant, l'utilisation de "equals" est plus propre et plus lisible pour effectuer une égalité.
Voilà, en espérant que cela vous aide à y voir plus clair...