IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SWT/JFace Java Discussion :

saisi uniquement numériques dans dans zones de textes.


Sujet :

SWT/JFace Java

  1. #1
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut saisi uniquement numériques dans dans zones de textes.
    bonjour,

    un petit problème rapide à régler je pense,

    j'aimerais que dans certaines zones de texte de mon formulaire de saisie il ne soit possibles de saisir que du numérique. Si un autre caractère est saisi sa renvoie une erreur.Est-ce possible de faire cela? Petite précision mes champs c'est du SWT mais je pense que sa ne change pas grand chose.

    Merci d'avance.

  2. #2
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    Bon ben j'ai résolu mon problème.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 96
    Points : 63
    Points
    63
    Par défaut
    Salut,
    tu pourrais m'expliquer comment tu as fait?
    Je voudrais autoriser que des long dans un champs text...

    Merci,
    Nico

  4. #4
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Bonjour,

    Pour ma part, j'ai créé la méthode "strToInt". Cette méthode n'accepte que des chiffres, donc pour l'instant pas de valeurs négatives. Pour tout autre caractère, elle fait "beep", efface ce caractère et replace le curseur là où il était.

    Je pense qu'à peu de frais, elle est extensible aux nombres négatifs et aux nombres flottants.

    J'ai créé cette méthode car je n'ai pas été foutu de mettre en oeuvre la classe "JFormattedTextField" pour obtenir ce résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    /*
     * UG.java
     *
     * Created on 25 mai 2007, 09:40
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
     
    package Utils;
     
    import java.awt.Toolkit;
    import java.text.NumberFormat;
    import java.text.ParseException;
    import javax.swing.JTextField;
     
    /**
     *
     * @author Pierre
     */
    public class UG {
     
        /** Creates a new instance of UG */
        public UG() {
        }
     
        static public int strToInt(JTextField jTf) {
            int v = 0; // la valeur à retourner
            String s = jTf.getText(); // le texte à analyser
            int p = jTf.getCaretPosition()-1; // l'index du caractère à analyser
            if (p >= 0) {
                Character cc = s.charAt(p); // le caractère à analyser
                if (!(cc >= '0' && cc <= '9')) { // si ce n'est pas un chiffre ...
                    Toolkit.getDefaultToolkit().beep(); // coup de trompette
                    String[] lp = s.split(cc.toString()); //on sépare les champs autour du caractère indésirable
                    s = "";
                    for (int i = 0; i < lp.length; i++)
                        s = s+lp[i]; // on recole les morceaux sans le caractère indésirable
                    jTf.setText(s); // on renvoie ça dans le JTextField
                    jTf.setCaretPosition(p); // on y repositionne le curseur
                }
                try { // si tout y en a être bon ...
                    v = NumberFormat.getInstance().parse(s).intValue(); //on retourne la valeur numérique
                } catch (ParseException e) {
                    if (s.isEmpty()) //si la chaîne est vide ...
                        v = 0; // on retourne "0"
                }
            }
            return v;
        }
    }
    Cordialement.

    Pierre

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Autre solution : Il y a dans Nebula le composant FormattedText qui, par le biais de formatteurs adaptés à différents types de données, permet d'appliquer sur le widget Text des formats contrôlés à la volée en cours de saisie.
    Formatteurs disponibles : numériques, dates, masques de chaines (ex. n° de téléphone).

    Par exemple pour un champ de saisie numérique :
    FormattedText ft = new FormattedText(parent, SWT.BORDER);
    ft.setFormatter(new NumberFormatter("###,##0.00"));

    Cf. http://www.eclipse.org/nebula/

    Eric

  6. #6
    FMC
    FMC est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Désolé de remonter ce topic, mais j'aimerais savoir comment installer le plug-in Nebola. J'ai téléchargé le zip depuis cette page.

    J'ai décompressé le fichier .jar et l'ai placé dans "plugins", ensuite j'ai créé un dossier du nom du fichier .jar et ai mis le reste des documents dedans.

    Je ne vois pas de différences lorsque je lance Eclipse, et je ne sais pas non plus où vérifier qu'il a été installer. De même, lorsque je tente un import org.eclipse... etc etc, ça ne fonctionne pas.

    Merci de m'aider !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Le ZIP téléchargé contient un JAR, org.eclipse.nebula.widgets.formattedtext_1.0.0.jar, qu'il suffit de placer tel quel dans le répertoire plugins d'Eclipse. Il n'y a pas lieu d'en extraire le contenu (plug-ins au format JAR apparus avec Eclipse 3.1).

    Pour vérifier ensuite que le plug-in est correctement installé, à partir du menu Help, ouvrir la boite de dialoque "About Eclipse SDK", puis cliquer sur le bouton "Plug-in Details". Le plugin installé doit apparaitre dans la liste.

    Pour utiliser le plug-in dans une application RCP, il faut au préalable le déclarer dans les dépendances des plug-ins qui vont l'utiliser. Pour cela ouvrir le fichier plugin.xml ou MANIFEST.MF du plug-in, sélectionner l'onglet "Dependencies" et ajouter le plug-in dans la liste "Required Plug-Ins".

    Pour une application SWT n'utilisant pas Eclipse RCP, il faut déclarer le fichier JAR du plug-in dans le classpath de l'application.

    Eric

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interdire la saisie dans une zone de texte
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 03/04/2008, 13h53
  2. [Formulaire]Contrôle de saisie dans une zone de texte
    Par ludovicparis dans le forum IHM
    Réponses: 7
    Dernier message: 29/03/2007, 14h39
  3. Autoriser la saisie des virgules dans une zone de texte
    Par griese dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 10/07/2006, 12h19
  4. Valeur numérique dans une zone de texte
    Par KEROZEN dans le forum IHM
    Réponses: 3
    Dernier message: 30/05/2006, 09h43
  5. obliger la saisie dans une zone de texte
    Par mat75019 dans le forum Access
    Réponses: 5
    Dernier message: 02/05/2006, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo