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 :

faire un teste sur le forma de JTextField


Sujet :

Composants Java

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut faire un teste sur le forma de JTextField
    salut à tous
    je veux faire un teste sur le format du contenu de JTexteField mais ça marche pas.
    voici le code:


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public void jTextField4_focusLost(FocusEvent e)
        {         if (jTextField4.getText().length() > 10)
              { JOptionPane.showMessageDialog(null,"vous devez entrer une date de format jj/mm/aaaa");
             }
     
             String[] tab = new String[10];
             for(int i=0;i<10;i++)
             {
               tab[i] = jTextField1.getText();
             }
             int j1 = Integer.parseInt(tab[0]);
             int j2 = Integer.parseInt(tab[1]);
             int m1 = Integer.parseInt(tab[3]);
             int m2 = Integer.parseInt(tab[4]);
             int a1 = Integer.parseInt(tab[6]);
             int a2 = Integer.parseInt(tab[7]);
             int a3 = Integer.parseInt(tab[8]);
             int a4 = Integer.parseInt(tab[9]);
             int jj = (j1 * 10) + j2;
             int mm = (m1 * 10) + m2;
             int aaaa = (a1 * 1000) + (a2 * 100) + (a3 * 10) + a4;
             if (( (jj <= 0) || (jj > 31)) && ( (mm <= 0) || (mm > 12)) &&  (aaaa < 0))
             {
            JOptionPane.showMessageDialog(null,"Le format de la date est incorrect");
             }}
     
    }

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Pour faire cela, tu ferais mieux d'utiliser un JFormattedTextField avec un dateFormat.

    Mais dans ton code, c'est ne pas tout à fait juste la facon dont tu traite les chaine de caractères.

    Tu stockes l'entier de la chaine dans chaque variable, alors que je crois que tu veut stocker qu'un seul caractère, pour cela, regarde la méthode charAt

  3. #3
    Membre confirmé Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Points : 508
    Points
    508
    Par défaut
    l'art de couper les cheveux en 4 .... ou en 10, pour les cheveux les plus longs ....

    bon ... va faire un tour sur la javadoc du côté de la classe StringTokenizer.
    tu y découvrira des choses intéresantes (java.util.StringTokenizer) :

    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
    StringTokenizer stt = new StringTokenizer(jTextField1.getText(), "/");
    int [] date = new int[3];
    
    if(stt.countTokens()==3){
        try{
            date[0] = Integer.parseInt(stt.nextToken().trim()); //jour
            date[1] = Integer.parseInt(stt.nextToken().trim()); //mois
            date[2] = Integer.parseInt(stt.nextToken().trim()); //année
    //j'ai rajouté des trim pour te permettre d'écrire : "jj/mm/aaaa" ET "jj / mm / aaaa"
    
        }catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(null,"Le format de la date est incorrect");
        }
    
        if (( (date[0] <= 0) || (date[0] > 31)) && ( (date[1] <= 0) || (date[1] > 12)) &&  (date[2] < 0))
            JOptionPane.showMessageDialog(null,"Le format de la date est incorrect");
    }
    PS : ne me tiens pas rigueur des possibles fautes ... je l'ai tapé à l'arrache dans la textarea du forum
    Toute vérité est bonne à entendre, même si toutes les vérités ne sont pas bonnes à dire.
    Rien ne sert de partir à point, il vaut mieux courir .

Discussions similaires

  1. pouvez-vous faire un test sur IE<7 ?
    Par criscaro dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 11/12/2006, 22h18
  2. faire un test sur une variable
    Par donny dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2006, 15h55
  3. Comment faire un test sur un pchar ?
    Par Mickey.jet dans le forum Langage
    Réponses: 2
    Dernier message: 19/03/2006, 16h53
  4. Comment faire un test sur "" ?
    Par magic8392 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 28/09/2005, 14h19
  5. faire un test sur un programme externe
    Par marieheraud dans le forum Windows
    Réponses: 3
    Dernier message: 02/09/2004, 18h32

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