Partage
  • Partager sur Facebook
  • Partager sur Twitter

Une méthode

    28 janvier 2009 à 13:41:12

    Bonjour,
    j'aimerais connaître le nom d'une méthode qui ne laisse l'utilisateur taper qu'un nombre entre 0 et 50 dans une zone de texte sur une boite de dialogue.
    Merci et à bientôt !
    • Partager sur Facebook
    • Partager sur Twitter
      28 janvier 2009 à 17:49:52

      Ce que je voulais demander, c'est : "Est-ce qu'il y a une boite de dialogue où l'on ne peut écrire que des nombres?"
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        28 janvier 2009 à 18:44:30

        tu test avec Char.isNumber() ou sinon il y a aussi Scanner.nextInt() qui balance un NumberFormatException (ou quelque chose comme ça) si c'est pas un nombre
        • Partager sur Facebook
        • Partager sur Twitter
          28 janvier 2009 à 19:12:31

          Heum...
          Es-tu sûr que c'est pour une boite de dialogue?

          String taille = jop.showInputDialog(null, "Entrez la taille du texte.", "Taille du texte?", JOptionPane.QUESTION_MESSAGE);
          taille.isNumber();
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            28 janvier 2009 à 19:25:29

            isNumber est une methode de Char si mes souvenir sont bon, regarde dans la javadoc ça y est indiqué.
            • Partager sur Facebook
            • Partager sur Twitter
              28 janvier 2009 à 19:30:52

              Et.. tu bouclerais tant que la saisie n'est pas valide ?

              Ca ne me semble pas pratique, perso je créerais une boite de dialogue à partir de JDialog qui contient un JSpinner.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                28 janvier 2009 à 19:36:39

                Citation : freecircus

                Et.. tu bouclerais tant que la saisie n'est pas valide ?



                Non je redépose une tâche de demande dans la queue de Runnable et il me redemande l'entrée c'est tout.
                • Partager sur Facebook
                • Partager sur Twitter
                  29 janvier 2009 à 11:24:24

                  Ce que je pourrait te conseiller c'est d'écrire ta propre méthode le principe serait le suivant:
                  A chaque modification de ton JTextarea tu verifie la chaine entrée si ce n'est pas un chiffre tu l'efface.
                  Tu pourra t'inspirer des evenements sur les Textes.
                  Jte laisse chercher dans ce sens

                  Il n'ya pas mieux que de faire sois meme ses repas.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  J'ai tous les badges d'OpenClassrooms.
                    29 janvier 2009 à 12:50:16

                    Citation : willykonguem

                    Ce que je pourrait te conseiller c'est d'écrire ta propre méthode le principe serait le suivant:
                    A chaque modification de ton JTextarea tu verifie la chaine entrée si ce n'est pas un chiffre tu l'efface.


                    Tu n'as pas la possibilité de faire ça avec la méthode JOptionPane.showInputDialog() si ?
                    Si ce n'est pas le cas, autant construire ta propre boite de dialogue avec un truc du genre dedans :
                    new JSpinner(new SpinnerNumberModel(0,0,50,1));
                    


                    Mais la méthode proposée par shakhal semble encore ce qu'il y a de plus simple.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 janvier 2009 à 17:10:17

                      Heum... je crois que vous n'avez pas trop compris ce que je veux faire :)
                      Je veux que l'on ne puisse taper que des nombres, compris entre 10 et 50.

                      Voici le code :
                      JOptionPane jop = new JOptionPane(	new JSpinner (new SpinnerNumberModel(0,0,50,1)));       		   
                              		String taille = jop.showInputDialog(null, "Entrez la taille du texte.", "Taille du texte?", JOptionPane.QUESTION_MESSAGE);
                      
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 janvier 2009 à 17:58:07

                        faut verifier une fois que l'utilisateur a rentre son entree au clavier. Si c'est pas un chiffre tu lui remets la fenetre qui demande un chiffre, sinon tu continues
                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 janvier 2009 à 18:36:50

                          Ah d'accord :) mais c'est justement là que jen e sais pas faire : comment vérifier si l'utilisateur a tapé des nombres?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 janvier 2009 à 18:41:51

                            Jette un coup d'œil aux expressions régulières (appelées également regex).

                            Il y a surement "plus simple" pour ton cas cependant.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              29 janvier 2009 à 19:04:15

                              Je propose ceci :
                              boolean done = false;
                              int t;
                              do  {
                                   String taille = JOptionPane.showInputDialog(null,
                              						 "Entrez la taille du texte (entre 10 et 50).", 
                              						 10);
                                   try {
                              	  t = Integer.parseInt(taille);
                              	  if(t>=10 && t<=50)
                              	       done = true;
                                   }
                                   catch(NumberFormatException e) {}
                              } while(!done);
                              
                              • Partager sur Facebook
                              • Partager sur Twitter
                                31 janvier 2009 à 19:56:29

                                Hello !
                                J'ai fait un copié/collé de ton code, car je ne comprends même pas la moitié des mots que tu y emploies :lol: (exemple : catch(NumberFormatException e) {} )...

                                Et chez moi, ca souligne le f (le f remplace ton e)...

                                Voici mon code :
                                public void actionPerformed(ActionEvent e , NumberFormatException f) {
                                        	if(e.getSource().equals(item11))
                                  		
                                			{
                                        		boolean done = false;
                                        		int t;
                                        		do  {
                                        		     String taille = JOptionPane.showInputDialog(null,
                                        								 "Entrez la taille du texte (entre 10 et 50).", 
                                        								 10);
                                        		     try {
                                        			  t = Integer.parseInt(taille);
                                        			  if(t>=10 && t<=50)
                                        			       done = true;
                                        		     }
                                        		     catch(NumberFormatException f) {}
                                        		} while(!done);
                                
                                			}
                                


                                PS : peux-tu m'expliquer tout ton code? ainsi, je pourrais peut-être me corriger tout seul? :)
                                En tout cas, merci à vous tous ^^
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  31 janvier 2009 à 20:24:25

                                  Voila ce code commenté
                                  public void actionPerformed(ActionEvent e) {
                                          	if(e.getSource().equals(item11))
                                  			{
                                          		boolean done = false; // valeur qui designe si le nombre passé en parametre est un chifre (entre 10 et 50) ou pas
                                          		int t; /* variable qui contiedra la taille de la chaine */
                                          		do  {
                                          		     String taille = JOptionPane.showInputDialog(null,
                                          								 "Entrez la taille du texte (entre 10 et 50).",10); /* affiche la boite de dialogue*/
                                          		     try { 
                                          			  t = Integer.parseInt(taille); /* convertit la valeur saisie en entier*/
                                          			  if(t>=10 && t<=50)
                                          			       done = true; /* charge la variable done lorsque on a ce que l'on veut*/
                                          		     }
                                          		     catch(NumberFormatException f) { /* lorsque la vleur saisie n'était pas un nombre */
                                                               }
                                          		} while(!done); /* cette parie est repetée jusqu'a ce que l'on ait lenombre demandé. */
                                  
                                  			}
                                  
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  J'ai tous les badges d'OpenClassrooms.
                                    31 janvier 2009 à 20:32:39

                                    Ok, merci beaucoup ! Tout marche :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Une méthode

                                    × 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