Partage
  • Partager sur Facebook
  • Partager sur Twitter

limité la saisi dans un JTextField a des entier seulement ?

Sujet résolu
    24 mai 2012 à 23:38:57

    Salut !
    Je suis entrain de réaliser une interface graphique, et j'ai un JTextField qui doit recevoir un entier et pas un String, j'ai fais la conversion de type, mais le problème que si l'utilisateur saisi par erreur un String une erreur est générée bref c'est normal, donc je cherche un moyen pour que l'utilisateur n'arrive pas a saisir un String, genre soit a la saisi de String rine n'est écris genre le champs sera bloqué ou n'importe quelle astuce, j'arrive pas a détecter le type de valeur saisie, qui a une idée pour faire ce test ?
    merci
    • Partager sur Facebook
    • Partager sur Twitter
      24 mai 2012 à 23:47:30

      Tu peux créer ton propre composant héritant de JTextField auquel tu ajoute un KeyListener et tu teste si le caractère inséré est un entier et à la limite un point ou une virgule. Si oui, tu modifie le texte du JTextField avec setText, sinon, tu ignore la touche.
      • Partager sur Facebook
      • Partager sur Twitter
        25 mai 2012 à 0:00:35

        Sinon tu entoures le code qui fait la conversion String -> int d'un bloc try/catch et dans le catch tu avertis l'utilisateur qu'il ne doit saisir que des entiers et tu vides le champ de texte.
        Du coup ça n'empêche pas l'utilisateur de saisir n'importe quoi mais au moins il est averti en cas d'erreur.
        • Partager sur Facebook
        • Partager sur Twitter
        ⚙️ Une solution simple règle le problème ; une solution compliquée en crée un nouveau.
          25 mai 2012 à 10:30:29

          Et pourquoi ne pas passer par un JFormattedTextField ?http://www.siteduzero.com/tutoriel-3-10550-les-champs-de-texte-l-objet-jtextfield.html#ss_part_2
          • Partager sur Facebook
          • Partager sur Twitter
          Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
            25 mai 2012 à 13:36:44

            Finalement j'ai réussi a faire un JFormattedTextField qui accepte que des entiers, mais la j'ai un autre problème pour récupérer sa valeur, je dois insérer sa valeur dans une liste d'entier, quand je fais
            card.getText();
            

            il le considère comme un String quand je fais une conversion de type
            int ca=Integer.parstInt(card.getText());
            

            il me génére des erreur vu que le JFormattedTextField est formater en INT, j'arrive pas a récupérer sa valeur
            • Partager sur Facebook
            • Partager sur Twitter
              25 mai 2012 à 14:59:07

              Ce n'est pas un getText mais un getValue

              int value=(int)card.getValue();
              
              • Partager sur Facebook
              • Partager sur Twitter
              Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...

              limité la saisi dans un JTextField a des entier seulement ?

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown