Probleme exception

walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011 - 1 juin 2010 à 12:48
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 1 juin 2010 à 17:39
Bonjour, j'ai ecrit deux methodes:

void add() { //permet l'addition des masses passagers arrieres.
double Res=0;
int quantiteAV = Integer.parseInt(jLabelQuantiteAV.getText());
int quantiteAR = Integer.parseInt(jLabelQuantiteAR.getText());
Res = quantiteAV + quantiteAR;
jLabelQuantiteL.setText(""+Res);
}


void masseCarburant(){
double Res = 0;
double d = 0.79;
double d1 = 0.71;
int nbLitres = Integer.parseInt(jLabelQuantiteL.getText());
switch (jComboBox.getSelectedIndex()){
case 1: Res = (int) (nbLitres * d); break;
case 2: Res = (int) (nbLitres * d); break;
case 3: Res = (int) (nbLitres * d); break;
case 4: Res = (int) (nbLitres * d); break;
case 5: Res = (int) (nbLitres * d); break;
case 6: Res = (int) (nbLitres * d); break;
case 7: Res = (int) (nbLitres * d); break;
case 8: Res = (int) (nbLitres * d); break;
case 9: Res = (int) (nbLitres * d); break;
case 11: Res = (int) (nbLitres * d1); break;
case 12: Res = (int) (nbLitres* d); break;
case 13: Res = (int) (nbLitres* d); break;
}
jLabelMasseCarburant.setText("" + Res);

}

Et dans l'action de mon bouton qui me permet d'ouvrir une nouvelle fenetre et de copier mes valeurs dans cette derniere j'ai mis:

if (jCheckBoxBiTurbine.isSelected()) {
int Res3;
double d = 0.79;
int nbLitres = Integer.parseInt(jLabelQuantiteL.getText());
int Res1 = 0;
int Res2 = 0;
int carbu1 = Integer.parseInt(jTextFieldCarbuAV.getText());
int carbu2 = Integer.parseInt(jTextFieldCarbuAR.getText());
double d10 = 7.3;
Res1 = (int) (carbu1 * d10);
Res2 = (int) (carbu2 * d10);
jLabelQuantiteAV.setText("" + Res1);
jLabelQuantiteAR.setText("" + Res2);
add();
Res3 = (int) (nbLitres * d);
jLabelMasseCarburant.setText("" + Res3);
nouvellefenetre.setLabelText26(jLabelQuantiteAR.getText());
nouvellefenetre.setLabelText27(jLabelQuantiteAV.getText());
nouvellefenetre.setLabelText28(jTextFieldCarbuAR.getText());
nouvellefenetre.setLabelText29(jTextFieldCarbuAV.getText());
nouvellefenetre.setLabelText31(jLabelMasseCarburant.getText());//recupere la masse carburant

}
else{
carburant();
nouvellefenetre.setLabelText25(jLabelQuantiteL.getText());
nouvellefenetre.setLabelText30(jTextFieldpourcentage.getText());
masseCarburant();
nouvellefenetre.setLabelText31(jLabelMasseCarburant.getText());//recupere la masse carburant
}


nouvellefenetre.setVisible(true);

}


Mais j'obtient l'erreur suivante:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at monPackage2.Demarrage$10.actionPerformed(Demarrage.java:1290)
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.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)

Pouvez vous m'aider?

Merci

13 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 juin 2010 à 12:54
Salut,

Tu essaye de parser une chaîne de caractère qui est vide, alors soit tu testes si la chaîne est vide avant de faire ton Integer.parseInt, soit tu gère l'exception par un bloc try catch.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
1 juin 2010 à 13:14
Euh d'accord, mais je ne sais pas comment utiliser votre aide, pouvez vous m'eclaircir? Ou dois je ecrire le test ou le try catch et comment?

Merci
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 juin 2010 à 13:43
Salut,

Si tu regarde bien ta stacktrace, l'erreur concernant la ligne 1290de ta classe Demarrage :
monPackage2.Demarrage$10.actionPerformed(Demarrage.java:1290)

C'est donc à cette ligne là qu'il faut traîter l'erreur :

Integer tonNombre = 0;
if (!"".equals(tonTextField.getText())) {
tonNombre = Integer.parseInt(tonTextField.getText());
}

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
1 juin 2010 à 14:10
D'accord je vois, je n'est plus d'erreur, mais lorsque je lance mon appli, je devrai avoir un resultat suite à l'operation, or nbLitres reste à 0, alors qu'il devrait prendre la valeur situe dans jLabelQuantiteL

Ce n'est pas la cas.

Je ne comprends pas.


Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 juin 2010 à 14:26
Salut,

Ok, mais si tu ne montres pas ton code, on pourra pas t'aider : on peut pas deviner ce qui cloche.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
1 juin 2010 à 14:32
Mon code reste le meme que dans mon premier message en fait j'ai juste rajouté le bout de code que vous m'avait donne rpour eviter d'avoir l'erreur:

if (jCheckBoxBiTurbine.isSelected()) {
int Res3;
double d = 0.79;
int Res1 = 0;
int Res2 = 0;
int carbu1 = Integer.parseInt(jTextFieldCarbuAV.getText());
int carbu2 = Integer.parseInt(jTextFieldCarbuAR.getText());
double d10 = 7.3;
Integer nbLitres = 0;
if (!"".equals(jLabelQuantiteL.getText())) {
nbLitres = Integer.parseInt(jLabelQuantiteL.getText());
}/b Res1 = (int) (carbu1 * d10);
Res2 = (int) (carbu2 * d10);
jLabelQuantiteAV.setText("" + Res1);
jLabelQuantiteAR.setText("" + Res2);
add();
Res3 = (int) (nbLitres * d);
jLabelMasseCarburant.setText("" + Res3);
nouvellefenetre.setLabelText26(jLabelQuantiteAR.getText());
nouvellefenetre.setLabelText27(jLabelQuantiteAV.getText());
nouvellefenetre.setLabelText28(jTextFieldCarbuAR.getText());
nouvellefenetre.setLabelText29(jTextFieldCarbuAV.getText());
nouvellefenetre.setLabelText31(jLabelMasseCarburant.getText());//recupere la masse carburant

}
else{

......
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 juin 2010 à 14:41
Salut,

Ok, mais lorsqu'il exécute ses lignes, est-ce que ton label est remplit ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
1 juin 2010 à 14:53
Oui mon LabelQuantiteL se remplit bien, mais normalement ensuite grace a l'operation

Res3 = (int) (nbLitres * d);
jLabelMasseCarburant.setText("" + Res3);

Je devrais avoir un resultat qui s'affiche dans le labelMasseCarburant, or j'ai toujours 0.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 juin 2010 à 15:24
Salut,

S'il reste à 0, c'est qu'il y a une raison.

A la vue de ton instructions (Res3 = (int) (nbLitres * d); ), il y a plusieurs pistes :
soit nbLitres est égal à 0,
soit l'opération nbListres * d est < 1 (en ce cas là, le cast en int donne 0)

Mets un points d'arrêt dans ton code pour voir ce qui se passe.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
1 juin 2010 à 16:35
Je suis vraiment debutant et je ne sais pas ce qu'est un point d'arret ni comment proceder pour en mettre un,que dois je voir? pouvez m'expliquer?

Merci
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 juin 2010 à 16:41
Salut,

Tu développe sous quel IDE ?

Un point d'arrêt (ou breakpoint) est la base de tout debogguage, ca consiste à interrompre l'exécution d'un code afin de pouvoir voir le contenu des variables, suivre l'évolution du code, modifier la valeur des variables, etc.

Sous eclipse (mais également dans la majorité des IDE), il te suffit de cliquer dans la colonne à droite du numéro de ligne, puis d'exécuter ton code en mode "Debug", et dès que ton programme exécutera la ligne en question, il arrêtera son exécution afin de te donner la main pour debugguer le code.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
walkn Messages postés 96 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 23 avril 2011
1 juin 2010 à 17:05
D'accord je comprends le principe, maisque dois je voir parce que la je vois pas ce que je dois lire ensuite.

Je develloppe sous eclipse

Merci
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 juin 2010 à 17:39
Salut,

Et bien si tu mets ton point d'arrêt sur la ligne qui t'affiche toujours 0, tu peux voir quelles sont les valeurs des variables au moment du calcul, et en déduire ce qui ne fait pas ce qui est censé être fait.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Rejoignez-nous