Verification des champs en java

Fermé
fanimed Messages postés 84 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 3 juillet 2009 - 7 févr. 2009 à 18:30
fanimed Messages postés 84 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 3 juillet 2009 - 7 févr. 2009 à 19:56
Bonsoir,
Je voulais que vous m'aidez. je suis un debutant en java et j'aimerais savoir comment verifier les valeurs entrees par un utilisateur dans mon programme. cad verifier que l'utilisateur entre des nombres et pas des chaines de caracteres. Lorsque ce dernier entre une chaine de caractere, automatiquement lun message en rouge s'affiche devant le champ pour lui rappeler qu'il doit entrer des nombres et le bouton lier a ce champ se desactive.
Jai utiliser JtextField mais je ne sais pas comment verifier la saisie par la methode setText() puisque celle ci retourne une chaine de caractere.
Si vous avez une solution avec les exceptions developpez la un peu plus..parce que jessaie de faire avec sa mais je me bloque a chaque fois.
Je sais que ces possible de le faire aussi avec JFormattedField et FormattedMask. Si vous avez une solution plus simple avec sa, proposez la moi egalement.
Merci d'avance
A voir également:

4 réponses

pour une meilleur comprehension du code, tu devrais séparer ton code en plusieurs classes (que tu mets dans le même package. Ensuite pour ton probleme :

float montant;
String montantString = new String("hello");
if (choixConversion.equals("Euro")) {
try {
montant=(Float.parseFloat(saisieFranc.getText()))/(6.55957f);
retourEuro.setText(String.valueOf(montant));
}//try
catch (NumberFormatException E) {
JOptionPane Boite1 = new JOptionPane();
Boite1.showMessageDialog(null,"vous n'avez pas entré un nombre ....."," !!! Erreur !!!",JOptionPane.ERROR_MESSAGE);
}//catch
}//if

c'est le bout d'un programme que j'avais réalisé pour un tp où le but était de faire un convertisseur.
je pense que ça devrait marcher pour ce que tu veux faire (tu peux remplacer Float par Integer et parseFloat par parseInt)
1
tu le transforme en Integer :

int telEntier;

telEntier=Integer.valueOf(telJTextField.getText());

et là tu as transformé la chaine en entier
0
fanimed Messages postés 84 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 3 juillet 2009 18
7 févr. 2009 à 19:07
Ok merci mais le probleme ces empecher la saisie des chaines de caractere. sinon javais penser aussi a transformer les chaines de caractere en nombre mais javais utiliser Integer.parseInt() ou Double.parseInt()

Le probleme est quon ne sait pas ce que la transformation va donner.
L'utilisateur tape par exemple "abcd"... il ne sait pas que fait le programme en fait. il verra un resultat en chiffres alors quil a taper des lettres.
Pour donner une alllure plus pro au programme je crois que ces mieux d'afficher un message d'erreur lui precisant qu'il doit saisir uniquement des nombres.
Cela se fait tres bien avec les exceptions mais franchement je m'ensors pas.
C'est aussi possible avec JFormattedTextField. mais je prefere la solution avec les exceptions.

Je precise que mon programme contient une seule classe apres celle des exceptions. C'est la classe fenetre(heritee de JFrame) contenant toutes les methodes et attributs essentiels du programme. Au dessus evidemment jai importer les elements necessaires
Aidez moi svp.Merci
0
fanimed Messages postés 84 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 3 juillet 2009 18
7 févr. 2009 à 19:56
OK...Merci..Je vais essayer d'utiliser tes idees pour faire mon programme.En fait mon programme n'est pas tres gros.C'est pourquoi jai creer une seule classe pour gerer les quelques methodes..Mon programme aussi est un convertisseur mais de plusieurs types(monnaies, poids, longeurs, pixels; bits, etc.....)

Merci pour tes indications.
0