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

AWT/Swing Java Discussion :

calendrier sur JTextField


Sujet :

AWT/Swing Java

  1. #1
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut calendrier sur JTextField
    salut


    On peut créer un calendrier permettant de sélectionner une date.
    Il apparaît comme un JTextField banal avec un bouton sur le côté et le
    calendrier se déroule lorsque l'on clique dessus.


    merci

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Merci de chercher dans la liste des API proposée par developpez.com
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre confirmé Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2003
    Messages : 456
    Points : 482
    Points
    482
    Par défaut
    Citation Envoyé par ulysse031 Voir le message
    On peut créer un calendrier permettant de ....
    Oui, on peut.

    Citation Envoyé par ulysse031 Voir le message
    merci
    Mais de rien.

    A+
    Gronono

  4. #4
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
     
     
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
     
     
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.text.DateFormatSymbols;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.Locale;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
     
     
     
     
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.text.DateFormatSymbols;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.Locale;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
     
     
    public class Untitled2
    extends JPanel {
     
        private Locale _locale = getDefaultLocale();
     
        private GregorianCalendar _calendar = new GregorianCalendar();
     
        private DateFormatSymbols _dateSymbols = new DateFormatSymbols();
     
        private SimpleDateFormat _formatMY = new SimpleDateFormat("MMMM yyyy"); 
     
        private int _firstDayOfWeek = _calendar.getFirstDayOfWeek();
     
        private final JLabel _monthYear = new JLabel("", SwingUtilities.CENTER);
     
        private final JLabel[] _daysOfWeek = new JLabel[7];
     
        private final JButton[] _daysNumber = new JButton[42];
     
        private final ActionListener _changeMonth = new ActionListener() {
            public void actionPerformed(final ActionEvent ae) {
                final int nb = "next".equals(ae.getActionCommand()) ? 1: -1;
                _calendar.add(Calendar.MONTH, nb);
            updateMonthYear();
            updateDaysNumber();
            }
        };
     
        public Untitled2() {
            setLayout(new BorderLayout());
            // Month Panel
            final JPanel monthPanel = new JPanel();
            final JButton previous = new JButton("<<");
            previous.addActionListener(_changeMonth);
            final JButton next = new JButton(">>");
            next.addActionListener(_changeMonth);
            next.setActionCommand("next");
            _monthYear.setPreferredSize(new Dimension(120, 20));
            monthPanel.add(previous);
            monthPanel.add(_monthYear);
            monthPanel.add(next);
            add(monthPanel, BorderLayout.NORTH);
            // Day Panel
            final JPanel dayPanel = new JPanel();
            dayPanel.setLayout(new GridLayout(7, 7));
            for (int i = 0; i < 7; ++i)
                dayPanel.add(_daysOfWeek[i] = new JLabel("", SwingUtilities.CENTER));
     
     
     
            for (int i = 0; i < _daysNumber.length; ++i)
                dayPanel.add(_daysNumber[i] = new JButton());
     
     
     
            add(dayPanel, BorderLayout.CENTER);
            // Remplissage des composants
            updateMonthYear();
            updateDaysOfWeek();
            updateDaysNumber();
     
     
     
     
     
     
        }
     
        // Réactualise la locale et réaffiche le contenu des composants
        private void updateLocale(final Locale locale) {
            _locale = locale;
            final Date tmp = _calendar.getTime();
            _calendar = new GregorianCalendar(_locale);
            _calendar.setTime(tmp);
            _firstDayOfWeek = _calendar.getFirstDayOfWeek();
            _dateSymbols = new DateFormatSymbols(_locale);
            _formatMY = new SimpleDateFormat("MMMM yyyy", _locale);
            updateMonthYear();
            updateDaysOfWeek();
            updateDaysNumber();
        }
     
        // Affiche le mois et l'année en cours
        private void updateMonthYear() {
            _monthYear.setText(_formatMY.format(_calendar.getTime()));
        }
     
        // Affiche les jours de la semaine
        private void updateDaysOfWeek() {
            final String[] weekDays = _dateSymbols.getShortWeekdays();
            for (int i = 1; i < weekDays.length; ++i) {
                final int index = (i - 2 + _firstDayOfWeek) % 7 + 1;
                _daysOfWeek[i - 1].setText(weekDays[index]);
            }
        }
     
        // Affiche le numéro des jours
        private void updateDaysNumber() {
            final Date tmp = _calendar.getTime();
     
            _calendar.set(Calendar.DAY_OF_MONTH, 1);
            final int firstDay = _calendar.get(Calendar.DAY_OF_MONTH);
     
            final int LocalFirstDay = (firstDay - _firstDayOfWeek + 7) % 7 + 1;
            boolean full = false;
            for (int i = 0; i < _daysNumber.length; ++i) {
                //Détermine si le composant est affiché ou non
                final boolean isNotEmpty = i < LocalFirstDay - 1 || full;
                _daysNumber[i].setVisible(!isNotEmpty);
                // Affichage du jour
                if (!isNotEmpty) {
                    final int dayOfMonth = _calendar.get(Calendar.DAY_OF_MONTH);
                    _daysNumber[i].setText(String.valueOf(dayOfMonth));
                    _calendar.add(Calendar.DAY_OF_MONTH, 1);
                    full = 1 == _calendar.get(Calendar.DAY_OF_MONTH);
                }
            }
            _calendar.setTime(tmp);
        }
     
     
        public static void main(final String[] args)
        throws ParseException {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    final JFrame frame = new JFrame();
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    frame.getContentPane().add(new Untitled2());
                    frame.pack();
                    frame.setVisible(true);
                }
            });
        }
    }
    problème avec cette partie je cherche a faire une action sur le bouton _daysNumber[i] sur je click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
          final JPanel dayPanel = new JPanel();
            dayPanel.setLayout(new GridLayout(7, 7));
            for (int i = 0; i < 7; ++i)
                dayPanel.add(_daysOfWeek[i] = new JLabel("", SwingUtilities.CENTER));
            for (int i = 0; i < _daysNumber.length; ++i)
            dayPanel.add(_daysNumber[i] = new JButton());
             add(dayPanel, BorderLayout.CENTER);
            // Remplissage des composants
            updateMonthYear();
            updateDaysOfWeek();
            updateDaysNumber();

  5. #5
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par sinok Voir le message
    Merci de chercher dans la liste des API proposée par developpez.com
    Bis répétita, tu ty trouveras le composant que tu cherches, il n'en existe pas de base dans Swing
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  6. #6
    Provisoirement toléré
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Points : 125
    Points
    125
    Par défaut
    oki

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

Discussions similaires

  1. Lecture calendrier sur exchange
    Par REMACC1 dans le forum C#
    Réponses: 1
    Dernier message: 18/01/2007, 17h32
  2. ChangeListener sur JTextField
    Par grabriel dans le forum Composants
    Réponses: 2
    Dernier message: 24/10/2006, 17h49
  3. Afficher un calendrier sur une page php
    Par griese dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 12/06/2006, 09h53
  4. [calendrier sur access]
    Par T'chab dans le forum Access
    Réponses: 1
    Dernier message: 15/05/2006, 12h43
  5. Réponses: 2
    Dernier message: 09/05/2006, 23h13

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