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 :

Récupérer les premiers caractères dans un JTextFeild


Sujet :

Composants Java

  1. #1
    Membre du Club
    Homme Profil pro
    Economiste
    Inscrit en
    Décembre 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2016
    Messages : 114
    Points : 63
    Points
    63
    Par défaut Récupérer les premiers caractères dans un JTextFeild
    Bonsoir,
    Je viens vers vous pour demande d'aide. J'ai trois JTextFeild dans lesquels je saisie le nom, prénom et le rang du client. Pour la créations du code client, je souhaite récupéré les trois premières caractères du nom, les deux premiers caractères du prénom et le rang puis concaténé le tous pour en dégager le code du clients. Je ne sais même pas par où commencer cela. Si quelqu'un a proposition à me faire je serai ravi.

  2. #2
    Membre du Club
    Homme Profil pro
    Economiste
    Inscrit en
    Décembre 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2016
    Messages : 114
    Points : 63
    Points
    63
    Par défaut
    J'ai trouvé une solution en utilisant par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	String nom=txtNomCli.getText();
    nom.substring(0, 3);

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Un substring peut être une solution, mais qui ne fonctionnera que si la chaîne a une taille supérieure ou égale au "max", sinon exception ! Une autre solution est d'utiliser String.format().

    Par exemple, ici on limite à un nombre de caractères min et max, en remplaçant les espaces par un caractère déterminé :

    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
     
    public class Exemple {
    public static void main(String[] args) {
     
    		StringBuilder sb=new StringBuilder();
    		for(char c='a'; c<='e'; c++) {
    			sb.append(c);
    			for(int i=1; i<4; i++) {
    				System.out.println(sb+"/"+i+"=> -"+subtring(sb.toString(), i)+"-");
    			}
    		}
    	}
     
    	public static String subtring(String string, int nb) {
    		return String.format("%"+nb+"."+nb+"s", string).replace(' ', '#');
    	}
     
    }
    Donnera :
    a/1=> -a-
    a/2=> -#a-
    a/3=> -##a-
    ab/1=> -a-
    ab/2=> -ab-
    ab/3=> -#ab-
    abc/1=> -a-
    abc/2=> -ab-
    abc/3=> -abc-
    abcd/1=> -a-
    abcd/2=> -ab-
    abcd/3=> -abc-
    abcde/1=> -a-
    abcde/2=> -ab-
    abcde/3=> -abc-
    
    peu importe que la chaîne soit plus grande ou plus petite, ça fonctionne toujours. Les espaces sont remplacés par un caractère (# dans mon exemple) garantissant qu'il n'y a pas d'espaces dans le code.

    On pourrait faire aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static String subtring(String string, int nb) {
    		StringBuilder sb=new StringBuilder();
    		String format = "%."+nb+"s"; 
    		while ( sb.length()< nb ) {
    			sb.append(String.format(format, string));
    		}
    		return sb.toString().substring(0, nb);
    	}
    qui donne :

    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
    a/1=> -a-
    a/2=> -aa-
    a/3=> -aaa-
    ab/1=> -a-
    ab/2=> -ab-
    ab/3=> -aba-
    abc/1=> -a-
    abc/2=> -ab-
    abc/3=> -abc-
    abcd/1=> -a-
    abcd/2=> -ab-
    abcd/3=> -abc-
    abcde/1=> -a-
    abcde/2=> -ab-
    abcde/3=> -abc-
    ici, si la chaîne est trop petite, on la répète, autant de fois que nécessaire.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre du Club
    Homme Profil pro
    Economiste
    Inscrit en
    Décembre 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2016
    Messages : 114
    Points : 63
    Points
    63
    Par défaut
    Merci pour votre réponse. Comme vous l'avez dit, mon code ne marche pas s'il n'y pas un minimum de trois caractères.
    Par rapport au code que vous m'avez donné, je sais pas a quel endroit mettre les informations récupérer des JTextFeild afin de les traités pour en dégager le code client.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    J'imagine que tu as un formulaire pour créer un client. Un JDialog avec des JTextField avec un bouton de validation qui va faire une sauvegarde de ce client (dans un sgbd, un fichier...). Donc un code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    String nom = jtextfieldNom.getText();
    String prenom = jtextfieldPrenom.getText();
    String rang = jtextfieldRang.getText();
     
    // ici des contrôles de validité (s'ils ne sont pas fait à la volée), 
     
    // ici le code qui génère le code client à partir des trois String nom, prenom, rang :
    String codeClient = substring(nom,3)+substring(prenom,2)+rang; 
     
    // ici un contrôle sur le codeClient, qui peut déjà exister éventuellement (je ne sais pas ce que tu appelles rang et s'il est unique ou pas, mais substring(nom,3)+substring(prenom,2) peut ne pas l'être)
     
    // ici le code qui créé le client à partir des 4 String...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre du Club
    Homme Profil pro
    Economiste
    Inscrit en
    Décembre 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2016
    Messages : 114
    Points : 63
    Points
    63
    Par défaut
    Une fois encore merci. Ça marche à la perfection.
    Voici mon code pour ceux qui en aurons besoin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	public static String subtring(String string, int nb) {
    		return String.format("%"+nb+"."+nb+"s", string).replace(' ', '#');
    	}
    	private void updateValues(final JTextField txtNomCli, final JTextField txtPrenomCli, 
    			final JTextField txtNomMereCli, final JTextField txtPosition,final JComboBox cmbSexe) {
    		String nom=txtNomCli.getText();
    		String prenom=txtPrenomCli.getText();
    		String nomMer=txtNomMereCli.getText();
    		String rang=txtPosition.getText();
    		String sexe=cmbSexe.getSelectedItem().toString();
     
    		String codeClient=subtring(nom, 3)+subtring(prenom, 2)+subtring(nomMer, 2)+subtring(rang, 1)+subtring(sexe, 1);
    		txtCodeCli.setText(codeClient);
    	}

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/07/2017, 15h47
  2. Réponses: 3
    Dernier message: 17/08/2014, 15h20
  3. Réponses: 1
    Dernier message: 10/02/2011, 15h32
  4. Récupérer les mails Outlook dans une table Access
    Par zerrokooll dans le forum VBA Access
    Réponses: 79
    Dernier message: 07/07/2009, 14h22
  5. Comment récupérer les adresses WWW dans Internet Explorer ?
    Par chaours dans le forum Web & réseau
    Réponses: 7
    Dernier message: 03/09/2003, 14h27

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