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 :

[JTextFiled]Mettre une taille max à la saisie


Sujet :

Composants Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut [JTextFiled]Mettre une taille max à la saisie
    Bonjour, j'ai une interface avec des formulaires (JTextFiled) à remplir, toutefois, les données tapper dans ces JTextField étant par la suite affichés et
    stocker dans une base de donnée, j'aimerais donnée une taille maximum (en characteres ou en pixel, voir les deux) au texte saisi.
    Je n'arrive pas a trouver une méthode qui le fasse, donc si vous avez une idée

    mush_H.en.manque.d'inspiration

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    Tu peux utiliser un JFormattedTextField au lieu d'un JTextField. C'est pareil sauf que tu peux lui ajouter des contraintes. Son utilisation est très bien expliqué dans la javadoc.

    @+
    Alex

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    J'y ai deja jeter un coup d'oeil et j'ai pas trouver quelque chose qui permette de faire un truc simple comme mattre une taille maximum au texte saisie.
    le truc c'est que j'aimerais que lorsque l'on arrive à la taille max, l'utilisateur ne puisse plus rajouter de charactères, qu'il puisse au moins se rendre compte qu'il y a une taille maximum.
    La classe JFormattedTextField à l'air bien pour dire que l'on veut des chiffres, ou une date, mais j'ai vraiment pas vu comment faire ce que je veux. J'ai essayer le setColumns mais ca fait pas ca en fait

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 37
    Points
    37
    Par défaut
    Il faut que tu crées un MaskFormatter que tu passes en paramètre à JFormattedTextField :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MaskFormatter myMask = new MaskFormatter("#####");
    JFormattedTextField myTextField = new JFormattedTextField(myMask);
    La string que tu passes en paramètre au MaskFormatter détermine les caractères autorisés dans ton TextField. Le # autorise la saisie de tous les caractères. Le nombre de caractères de ta string détermine le nombre de caractères saisissables dans ton TextField. Ici, on peut saisir 5 caractères quelconques maximum.
    Voilà.

    Ah oui, il faut rajouter un try{...}catch{...} pour les parseException.

  5. #5
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Va voir la si le bour de code est bon :
    http://www.developpez.net/forums/viewtopic.php?t=199304
    Sinon l'utilisation de formattedTextField est une autre solution :
    http://java.sun.com/docs/books/tutorial/uiswing/components/formattedtextfield.html
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 37
    Points
    37
    Par défaut
    Petite correction, le # c'est pour les number.

  7. #7
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Citation Envoyé par alexandra_ape
    Le # autorise la saisie de tous les caractères.
    T'es sure de toi

    Si tu regarde la doc c'est plutot pour les nombres le # :
    # Any valid number (Character.isDigit).
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 37
    Points
    37
    Par défaut
    Quelle synchronisation sur les réponses mdr.

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    MDR, oui, superbe synchro, je vais deja voir si je peux trouver l'equivalent de # pour tout les charactere et non juste les nombres.
    Et sinon je prendrais al deuxieme methode proposer, Merci a vous deux

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    bon ba comme je pouvais m'en douter c'est * pour tout

    Donc j'essaye ca de suite.

  11. #11
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Bon voila ça marche impec, merci beaucoup.
    Seul point négatif, c'est pas super pratique quand on veut limiter a un nombre imoortant de charactère, genre 100
    mais bon, la je limite a 10 donc ca peut aller

    Voici le code :

    try {
    MaskFormatter myMask = new MaskFormatter("**********");
    tf_titre = new JFormattedTextField(myMask);
    tf_titre.setBounds(fw / 2 -40, yCourant, fw / 2 + 60, 20);
    this.getContentPane().add(tf_titre);
    } catch (Exception ex) {
    System.out.println("exception dans ajout du titre");
    }

    Vous croyez qu'il y a la meme chose pour un JTextArea ? :

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 37
    Points
    37
    Par défaut
    Pour le JTextArea, je ne sais pas. Par contre, si tu veux faire une longue longue longue chaîne de caractères, tu peux la créer en faisant une boucle. Ca simplifie un peu les choses.

  13. #13
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Pour les textArea faudra que tu passes par Document pour controler la saisie.
    http://www.developpez.net/forums/viewtopic.php?t=199304
    "Quand le sage montre la lune,
    L'idiot regarde le doigt."

  14. #14
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    oui alexandra la boucle j'y avait deja penser , mais ca rete pas pratique et de la bidouille

    Pour le JTextArea j'eesayerai le Document, merci.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/01/2015, 03h53
  2. Réponses: 10
    Dernier message: 03/02/2009, 09h14
  3. creer un tableau sans lui imposer une taille max
    Par christianf dans le forum C#
    Réponses: 7
    Dernier message: 05/05/2008, 18h50
  4. Réponses: 0
    Dernier message: 21/08/2007, 15h44
  5. [AWT] JFrame - Mettre une taille minimum sur une Jframe
    Par rabobsky dans le forum Agents de placement/Fenêtres
    Réponses: 12
    Dernier message: 27/07/2005, 18h20

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