alonsyl
Messages postés348Date d'inscriptionmardi 6 avril 2004StatutMembreDernière intervention 6 novembre 2008
-
21 nov. 2005 à 12:12
indiana_jules
Messages postés750Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention23 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) {
voici le message d'erreur renvoye par eclipse :
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification
jcodeunpeu
Messages postés365Date d'inscriptionmercredi 9 novembre 2005StatutMembreDernière intervention 2 décembre 20062 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+.