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

Collection et Stream Java Discussion :

pb Java -> listeners sur DATE


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par défaut pb Java -> listeners sur DATE
    Help me please!!!
    Voilà j'ai un gros problème sur mes listeners, je ne vois pas du tout comment les créer.
    J'ai deux boutons previous and next et j'aimerai que lorsque l'on clique sur un boutons on ajoute (ou enlève) un jour ( voir plusieurs selon les clics) à la date courante.
    Voilà mon bout de code, mes listeners son vide.

    Ya t-il quelqu'un pour m'aider.

    public class AfficheJour extends JPanel{

    private Locale locale = Locale.getDefault();//Choix de la langue
    private GregorianCalendar calendar = new GregorianCalendar();
    Date maDate = new Date();// Initialisé à la date
    private String jour;

    private int week = calendar.get(calendar.WEEK_OF_YEAR);
    // Me permet de récupérer le numéro de la semaine
    DateFormat dateFormat =
    DateFormat.getDateInstance(DateFormat.FULL, locale);

    private JLabel planningTitle;

    public AfficheJour(MainFrame frame){
    this.frame = frame;
    setLayout(new BorderLayout());

    calendar.setTime(maDate);
    calendar.add (Calendar.DATE, week);
    jour = dateFormat.format(maDate);

    final JPanel planningHead = new JPanel(new FlowLayout());

    planningTitle = new JLabel("Semaine " + week + " : " + jour, JLabel.CENTER);

    final JButton previous = new JButton("<<");
    previous.addActionListener(n);
    final JButton next = new JButton(">>");
    next.addActionListener(p);
    planningHead.add(previous); planningHead.add(planningTitle); planningHead.add(next);

    add(planningHead,"North");
    AffJour();
    }

    public void AffJour(){
    ...
    }
    add(semaine);
    }

    public void raffraichir() {
    planningTitle.setText("Semaine " + week + " : "+ dateFormat.format(maDate));
    }

    private final ActionListener n = new ActionListener() {
    public void actionPerformed(final ActionEvent e) {
    //Blokage?????
    raffraichir();
    }
    };

    private final ActionListener p = new ActionListener() {
    public void actionPerformed(final ActionEvent e) {
    Blokage???
    raffraichir();
    }
    };
    }
    J'avais aussi pensé à décomposer la date avec:
    day = calendar.get(Calendar.DAY_OF_MONTH)+1;
    month = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);
    year = calendar.get(Calendar.YEAR);
    mais je n'y aririve pas non plus.

    N'hésitez pas si vous avez des solutions voir des débuts de solutions.
    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Bonjour,

    Je pense qu'il faut travailler sur le Calendar pour pouvoir gérer simplement les dates:

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private final ActionListener p = new ActionListener() {
    	public void actionPerformed(final ActionEvent e) {
    		calendar.add(Calendar.DAY_OF_YEAR, 1);
    		maDate =calendar.getTime();
    		raffraichir();
    	}
    };
    La méthode add sur le Calendar permet d'effectuer des opérations sur ce Calendar. Ici, on ajoute un aux jours de l'année.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par défaut
    Yep!!!
    Merci Beaucoup
    Ça semble marcher mais ça me déclenche un petit beug...
    La date courante s'affiche correctement mais lorsque je clic sur next ou previous ça me créer un petit saut (d'un mois environ) et ensuite ça marche parfaitement...

    Ex : vendredi 29 mai 2009 sa saute au 21 juin et ensuite ça marche ça avance ou recule d'un et un seul jour

    Pourquoi se saut presque d'un mois alors qu'ensuite tout fonctionne parfaitement???

    Merci

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    en effet, le Calendar n'est pas à la date courante lorsqu'il est utilisé.
    Dans le constructeur, on lui ajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    calendar.add (Calendar.DATE, week);
    donc, le calendrier est décalé.

    En passant, cette ligne de code semble fausse, on ajoute un numéro de semaine à un jour du mois. La date est donc décalé, de 'week' jour par rapport à la date courante.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Par défaut
    MERCI beaucoup pour ton aide.

    C'est exact en enlevant cette ligne le code marche parfaitement.

    Petit précision pour ceux qui consulteraient cette discussion.
    Je renvoie la date et le numéros de semaine correspondant. Lorsque j'ai mis mon code je n'avais pas encore traité ce problème. Donc pour que celui-ci marche il fait insérer dans chaque écouteurs la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    week = calendar.get(calendar.WEEK_OF_YEAR);
    Celle-ci sert à actualiser le numéro de semaine.

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

Discussions similaires

  1. Listener sur le changement de date
    Par NizarK dans le forum Langage
    Réponses: 4
    Dernier message: 04/06/2008, 15h28
  2. [java] listener sur une forme
    Par Mystiss dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 04/11/2007, 21h41
  3. [JSlider] listener sur Jslider
    Par Garion dans le forum Composants
    Réponses: 4
    Dernier message: 31/05/2004, 13h33
  4. Listener sur un JPanel
    Par ptitelfe dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 27/03/2004, 13h14
  5. Calcul sur date
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2003, 08h55

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