Try {...} catch {...}

Résolu
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 21 nov. 2005 à 12:12
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 - 21 nov. 2005 à 12:46
bonjour,

j'essais de gerer les erreurs dans 1 JTextField.
dans le prg ci-dessous j'ai 2 JTextFields : 1 avec 1 prix et l'autre avec 1 taux de remboursement.
je voudrais gerer l'erreur : "si l'utilisateur saisie une valeur non numerique en tant que prix"
pour cela, je creer 1 variable "memoire" qui garde l'ancienne valeur du "prix" et qui remplace la saisie erronnee dans le JTextField.
je n'arrive pas a realiser cette manipe ; vous trouverez mon code ci-dessous avec le message d'erreur (la ligne ou ca plante est surlignee en rouge).

private JTextFiel prix = new JTextField("100");
private JTextFiel tx = new JTextField("100");
private Double memoire = 100;
private DecimalFormat forma = new DecimalFormat("00.00");


public void caretUpdate(CaretEvent ev){
if (desactiv == false) {
Object source = ev.getSource();
try {
if (source == prix) {
double part = Double.valueOf(tx.getText()).doubleValue();
double montant = Double.valueOf(prix.getText()).doubleValue();
String texte = new String("" + forma.format((montant * part /100)));
tx.setText(texte.replace(",", "."));
memoire = montant * part /100;
}
...
...
} catch (Exception erreur) {

String correc = new String("" + forma.format(memoire));
prix.setText(correc.replace(",", "."));
}
}
}


voici le message d'erreur renvoye par eclipse :
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification

sauriez-vous m'aider ???

merci a vous,

alonsyl

3 réponses

cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 9
21 nov. 2005 à 12:28
Tu peux utiliser un JFormattedTexfield qui fais cela très bien.
3
jcodeunpeu Messages postés 365 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 2 décembre 2006 2
21 nov. 2005 à 12:27
salut alonsyl,
effectivement, ça se présente un peu compliqué, pourquoi une fonction updateCaret ?
le teste de controle effectué aprés une validation devrait plutôt ressembler à :
String strVal= tx.getText();
double val = Double.parseDouble(strVal);
au moins avant la mise au format voulu qui soulève d'autre questions..
??? A+.
0
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
21 nov. 2005 à 12:46
0
Rejoignez-nous