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

Interfaces Graphiques en Java Discussion :

StringTokenizer - Reprise d'une date dans un tableau


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 18
    Points
    18
    Par défaut StringTokenizer - Reprise d'une date dans un tableau
    Bonjour tout le monde,

    J'ai un tableau sur une page, et je voudrais que, lorsque je double-clique sur une ligne, tous mes champs soient repris et affichés dans la bonne case. Tout est parfaitement repris, à l'exception de la date de naissance. Je voudrais la découper grâce à StringTokenizer pour avoir le jour, le mois et l'année bien séparés, et non pas la date en entier.

    Voici mon code pour reprendre mes données :
    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
     
    String id = (String) scriptModele.getValueAt (((JTable) e.getSource()).getSelectedRow(),0);
    String nom = (String) scriptModele.getValueAt (((JTable) e.getSource()).getSelectedRow(),1);
    String prenom = (String) scriptModele.getValueAt (((JTable) e.getSource()).getSelectedRow(),2);
    String adresse = (String) scriptModele.getValueAt (((JTable) e.getSource()).getSelectedRow(),3);
     
    String localiteAvecEspace = ((String) scriptModele.getValueAt(((JTable) e.getSource()).getSelectedRow(),4));
    StringTokenizer localiteTokenizer = new StringTokenizer (localiteAvecEspace, " ");
    String idLocalite = localiteTokenizer.nextToken ();
    String npaLocalite = localiteTokenizer.nextToken ();
    String nomLocalite = localiteTokenizer.nextToken ();
    Localite localite = new Localite (idLocalite, npaLocalite, nomLocalite);
     
    String telephone = (String) scriptModele.getValueAt (((JTable) e.getSource()).getSelectedRow(),5);
     
    String naissanceAvecTiret = ((String) scriptModele.getValueAt(((JTable) e.getSource()).getSelectedRow(),6));
    StringTokenizer naissanceTokenizer = new StringTokenizer (naissanceAvecTiret, "-");
    String jour = naissanceTokenizer.nextToken ();
    String mois = naissanceTokenizer.nextToken ();
    String annee = naissanceTokenizer.nextToken ();
    String naissace = annee + "-" + mois + "-" + jour;						
     
    Client client = new Client (id, nom, prenom, adresse, localite, telephone, naissance);
     
    FileClientModifierPilote fileClientModifierPilote;
    fileClientModifierPilote = new FileClientModifierPilote(client);
    setVisible(false);
    Voici le code sur la page où je dois afficher les données reprises précédemment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    numeroReprisLabel.setText(client.getId());
    nomTextField.setText (client.getNom());
    prenomTextField.setText (client.getPrenom());
    adresseTextField.setText (client.getAdresse());
    telTextField.setText (client.getTelephone());
     
    jourTextField.setText ((new Integer (client.getJour())).toString ());
    moisTextField.setText ((new Integer (client.getMois())).toString ());
    anneeTextField.setText ((new Integer (client.getAnnee())).toString ());
    Je pense que c'est ici que je fais une erreur, lorsque j'affiche le texte à jourTextField, etc...

    Merci de votre aide .

  2. #2
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Peux-tu nous exactement ce que contiennent les textfield jour mois année ?

    Plusieurs remarques :
    - Ton code m'a l'air correct
    cependant au niveau conception :
    - pourquoi convertir les données ( String à la base ) en Interger pour enfin faire un toString() ??

    Sinon pense à afficher ta variable "naissanceAvecTiret" est-elle bien de la forme "jj-mm-aaaa" ?

  3. #3
    Membre habitué Avatar de BlackWood
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 167
    Points : 169
    Points
    169
    Par défaut
    Tu aurais peut-être dû séparé la date en jour, mois et année directement dans la classe Client, et getStringDate() t'aurais donné la String "jj-mm-aaaa" pour l'affichage dans le tableau uniquement.
    Ou alors, 1 seul champ pour la ddn dans Client, mais de forme Date.

    Ou alors, pour garder ta structure (cad, String ddn si j'ai bien compris), déjà tu devrais plutot traiter la chaine dans une méthode au moment de l'affichage uniquement, pas avant, c'est inutile.
    Dans cette méthode, tu utilise StringTokenizer (ton code me semble correct également) pour séparer les 3 "sous-String" et les afficher directement.

    Je suis peut-être à coté de la plaque, désolé...

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par iohack
    Peux-tu nous exactement ce que contiennent les textfield jour mois année ?

    Sinon pense à afficher ta variable "naissanceAvecTiret" est-elle bien de la forme "jj-mm-aaaa" ?
    les TextField contiennent (devraient contenir), affichent les informations souhaitées, soit jourTextField = 12, moisTextField = 03, anneeTextField = 1984, car la date de naissance est 1984-03-12. En fait dans mon tableau, la date de naissance est affichée comme ceci : 1984-03-12 et non le 12-03-1984. Alors est-ce que mon code doit être modifié par rapport à cela ?

    Citation Envoyé par iohack
    - pourquoi convertir les données ( String à la base ) en Interger pour enfin faire un toString() ??
    En fait les jours, mois et annees sont déclarées en int dans mon programme. C'est mon prof qui m'a dit de faire comme ça.

    Voilà pour les informations complémentaires...

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Pour la date de naissance, elle est déclarée en format date dans ma base de données, mais je la traite comme un String dans mon code.

  6. #6
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Je voudrais la découper grâce à StringTokenizer pour avoir le jour, le mois et l'année bien séparés
    affichent les informations souhaitées, soit jourTextField = 12, moisTextField = 03, anneeTextField = 1984,
    Soit tu t'exprimes mal soi c'est moi qui suis teubé, mais là ya qqchose qui colle pas

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Dans mon tableau, j'ai une colonne "Date de naissance". Dans cette colonne, les dates sont inscrites comme ceci : 1983-01-31, par exemple.

    Ce que je voudrais, c'est qu'à l'aide de StringTokenizer, je puisse reprendre l'année, le mois et le jour, pour les mettre dans leur champ respectif, soit anneeTextField, moisTextField, jourTextField.

    J'espère que je me suis un peu mieux exprimée .

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Je pense que mon code pour afficher les données dans les TextField est faux, donc ce code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    jourTextField.setText ((new Integer (client.getJour())).toString ());
    moisTextField.setText ((new Integer (client.getMois())).toString ());
    anneeTextField.setText ((new Integer (client.getAnnee())).toString ());
    Les TextField ne reprennent pas les valeurs du StringTokenizer (cité dans le premier message), et je voudrais savoir comment les reprendre.

    Merci de votre aide

  9. #9
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Je comprends toujours pas, tu dis que tu veux extraire le jour, le mois et l'année. Dans le poste précédent, tu dis que les textfield affichent ce que tu veux ( en contradiction avec ton premier post ), maintenant, tu réaffime qu'en fait ça marche pas.
    Essais de t'exprimer un peu mieux en expliquant de manière détaillée ce qui ne marche pas, comme par exemple un affichage érroné dans ton textfield, ou encore la compilation, ou encore un problème d'interface.
    Sinon je pense que le mieux serait que tu nous montres le code de ta classe Client en indiquant clairement ce qui te pose problème, car je veux bien t'aider à saisir les notions de java mais pas corriger ou faire l'exercice à ta place.

  10. #10
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Citation Envoyé par pado_83
    Je pense que mon code pour afficher les données dans les TextField est faux, donc ce code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    jourTextField.setText ((new Integer (client.getJour())).toString ());
    moisTextField.setText ((new Integer (client.getMois())).toString ());
    anneeTextField.setText ((new Integer (client.getAnnee())).toString ());
    Les TextField ne reprennent pas les valeurs du StringTokenizer (cité dans le premier message), et je voudrais savoir comment les reprendre.

    Merci de votre aide
    et ça ce serait plus lisible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monTextField.setText(""+monClient.getAnnee());

  11. #11
    Membre du Club Avatar de matzeus
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    fait des sorties de tes valeurs avec des System.out.println pour que l'on sache ce que tu recup à l'appel de tes fonctions et leurs valeurs avant....
    c'est a dire avant ton StringTokenizer
    apres
    et apres l'appel de
    jourTextField.setText ((new Integer (client.getJour())).toString ());
    moisTextField.setText ((new Integer (client.getMois())).toString ());
    anneeTextField.setText ((new Integer (client.getAnnee())).toString ());

Discussions similaires

  1. Sélectionner une date dans un tableau
    Par MeylKV dans le forum jQuery
    Réponses: 0
    Dernier message: 05/05/2015, 16h07
  2. [XL-2007] tri mois d'une date dans un tableau croisé dynamique
    Par marcelisa2 dans le forum Excel
    Réponses: 3
    Dernier message: 04/06/2013, 16h57
  3. [MySQL] affichage d'une date dans un tableau
    Par toomou dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2009, 10h56
  4. [Dates] Formater une date dans un tableau
    Par orleans dans le forum Langage
    Réponses: 14
    Dernier message: 25/01/2008, 05h46
  5. [JTable] Afficher une date dans un tableau / Renderer
    Par isak dans le forum Composants
    Réponses: 3
    Dernier message: 11/07/2005, 17h09

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