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

Composants Java Discussion :

Mettre en majuscule les 1eres lettres d'un JTextField


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 102
    Par défaut Mettre en majuscule les 1eres lettres d'un JTextField
    Bonjour à tous, j’ai un JTextField qui doit contenir le prénom de l’utilisateur, il se trouve qu’un utilisateur peut avoir plusieurs prénoms, je voudrais que mon code mette toutes les premières lettres du prénom en majuscules.mon code le fait, mais pas correctement, dés que l’espace entre les prénoms atteint 2 caractères y’a problème. Comment pourrais-je l’améliorer ?
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private void TxtPrenomEnfantFocusLost(java.awt.event.FocusEvent evt) {                                          
            // TODO add your handling code here:
            String[] tab= getTxtPrenomEnfant().trim().split(" ");/*Nombre de prénom(s) en rapport avec l’espace entre eux, si  cet espace = 1 pas de problème, mais dès qu’il en est supérieur y’a problème*/
            String result=" "  ;
            for(int i=0;i<tab.length;i++){     
                String leTout=tab[i].substring(1);
                String prem=tab[i].substring(0,1).toUpperCase();
                result+= prem.concat(leTout).concat(" ");
            }
              TxtPrenomEnfant.setText(result );
        }

  2. #2
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Bonjour coolanso

    Tu pourrais splitter ta chaine en un tableau. la condition de séparation serait des blancs. Ceci est facile à faire avec la méthode split de la classe String. Après pour chaque élément du tableau, la première lettre passe en majuscule.
    Il ne te restera plus alors qu'a reconstruire ta chaine avec tous les éléments du tableau
    Page sur Developpez : http://pbriand.developpez.com

  3. #3
    Membre éclairé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Par défaut
    Salut,

    A ta place j'utiliserais le StringTokenizer... La méthode split de String utilise des regexp et est donc, de fait, un peu plus compliquée à utiliser...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    StringTokenizer st = new StringTokenizer(getTxtPrenomEnfant().trim(), " ");
            while (st.hasMoreTokens()) {
                String prenom = st.nextToken();
                System.out.println("prenom -> " + prenom); // Tu n'as ici que les token, sans les espaces. A toi d'en faire ce que tu veux...
            }
    Pour mettre en majuscule juste la première lettre, tu as une fonction intéressante dans StringUtils (qui t'offre aussi un split qui fonctionne sans regexp). Mais je ne sais pas si tu as le droit de l'utiliser....
    http://commons.apache.org/lang/api-2...lang.String%29

    http://commons.apache.org/lang/api-2...lang.String%29

    Dont voici le code, un rien plus efficace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            public static String capitalize(String str) {
                int strLen;
                if (str == null || (strLen = str.length()) == 0) {
                    return str;
                }
                return new StringBuffer(strLen).append(Character.toTitleCase(str.charAt(0))).append(str.substring(1)).toString();
            }
    (Utilisation de StringBuffer plutôt que concaténation de String --les String sont des objet immuable qui ne devraient pas être concaténées.)

    PS : Au fait, détail qui a réellement son importance : les noms de méthodes ne doivent JAMAIS commencer par une majuscule. Ton IDE doit te mettre un warning dessus. Pareil pour ton attribut. Seul les constantes doivent commencer par une majuscule.

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 102
    Par défaut
    Bonsoir leminipouce,excusez moi de revenir sur mon poste,il y'a que je n'arrive pas à utiliser la classe StringUtils.j'ai télécharger le package .rar et meme .src que j'ai ajouter à netbeans,mais pas moyen de le faire tourner.j'utilise version 7.1 de netbeans.y'a t-il quelque chose qui m'ai échapé?ou n'ai je pas peut-eu le bon package?

  5. #5
    Membre éclairé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Par défaut
    Salut,

    Le JAR qui contient la classe StringUtils est commons-lang.
    Je te conseille de télécharger la dernière version directement depuis le site d'Apache : http://commons.apache.org/lang/download_lang.cgi

    En l’occurrence, c'est le binaire qui t'intéresse. Tu le dézippes et tu y trouves le fichier commons-lang3-3.1.jar.

    C'est ce fichier là qu'il va te falloir ajouter au "classpath" de ton projet. Je n'ai jamais utilisé NetBeans, donc pour l'art et la manière d'ajouter une librairie au classpath d'un projet je te laisse aller voir... mon ami

Discussions similaires

  1. [Débutant] Mettre en majuscule les premieres lettres d'un prenom compose
    Par shaun_the_sheep dans le forum C#
    Réponses: 8
    Dernier message: 07/05/2014, 09h15
  2. Mettre en majuscule les premieres lettres d'un prenom compose
    Par rimbaut dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/04/2010, 13h55
  3. Réponses: 2
    Dernier message: 27/08/2009, 17h10
  4. Mettre en majuscule chaque premiere lettre
    Par andreditdd dans le forum Delphi
    Réponses: 12
    Dernier message: 02/04/2007, 14h12
  5. [RegEx] Mettre en majuscules les premières lettres accentuées
    Par Bibicmoi dans le forum Langage
    Réponses: 8
    Dernier message: 15/05/2006, 19h02

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