begin process at 2010 02 10 09:58:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Swing

 > SÉLECTEUR DE DATES MULTIPLES

SÉLECTEUR DE DATES MULTIPLES


 Information sur la source

Note :
Aucune note
Catégorie :Swing Classé sous :sélecteur dates, sélectionner plusieurs, date chooser, multiple dates, MultiDateChooser Niveau :Débutant Date de création :09/11/2008 Date de mise à jour :12/11/2008 02:30:19 Vu / téléchargé :2 518 / 338

Auteur : uhrand

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce composant permet de sélectionner plusieurs dates à la fois sur un même sélecteur en forme de calendrier.

Source

  • package demo;
  • /*
  • * Demo.java
  • *
  • * This demo shows you how to use a MultiDateChooser
  • * and a MultiDateButton.
  • *
  • * It displays a MultiDateChooser on the frame.
  • * The Button "Show selected Dates" displays the selections made
  • * on that date chooser.
  • *
  • * The Button "Datechooser Dialog" is a MultiDateButton.
  • * It displays a Dialog with another MultiDateChooser.
  • * The selections made there are displayed immediately in an OptionPane
  • * that pops up via the "DateSelectionListener" which is implemented
  • * directly by this "Demo" class.
  • *
  • * The Button "Clear All" clears the selections in both "MultiDateChooser"s
  • * (the one in the frame and the one in the dialog).
  • */
  • import chooser.*;
  • import event.*;
  • import java.awt.*;
  • import java.awt.event.*;
  • import java.text.*;
  • import java.util.*;
  • import javax.swing.*;
  • public class Demo extends JFrame implements ActionListener, DateSelectionListener {
  • private JButton btShow, btClearAll;
  • private MultiDateButton btChooserDialog;
  • private JPanel mainpanel;
  • private JToolBar toolbar;
  • private MultiDateChooser chooser;
  • private SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
  • public Demo() {
  • super("Demo");
  • setSize(400, 300);
  • setLocationRelativeTo(null);
  • setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  • mainpanel = new JPanel();
  • toolbar = new JToolBar();
  • btShow = new JButton("Show selected Dates");
  • btChooserDialog = new MultiDateButton("Datechooser Dialog");
  • btClearAll = new JButton("Clear All");
  • getContentPane().add(mainpanel, BorderLayout.CENTER);
  • btShow.addActionListener(this);
  • toolbar.add(btShow);
  • toolbar.add(btChooserDialog);
  • btClearAll.addActionListener(this);
  • toolbar.add(btClearAll);
  • getContentPane().add(toolbar, BorderLayout.PAGE_START);
  • chooser = new MultiDateChooser();
  • mainpanel.add(chooser);
  • //do some selections programmatically:
  • Calendar cal = Calendar.getInstance();
  • cal.add(Calendar.DATE, -2);
  • chooser.add(cal.getTime());
  • cal.add(Calendar.DATE, 5);
  • chooser.add(cal.getTime());
  • //listen to selection changes in chooser dialog:
  • btChooserDialog.addSelectionListener(this);
  • }
  • private void showSelectedDates(MultiDateChooser source) {
  • Set<Date> dates = source.getSelectedDates();
  • String str = "";
  • for (Date date : dates) {
  • str += df.format(date) + "\n";
  • }
  • str += "\n";
  • JOptionPane.showMessageDialog(this, str);
  • }
  • public void actionPerformed(final ActionEvent e) {
  • Object source = e.getSource();
  • if (source == btShow) {
  • showSelectedDates(chooser);
  • } else if (source == btClearAll) {
  • chooser.clearSelections();
  • btChooserDialog.clearSelections();
  • }
  • }
  • public void dateSelectionChanged(DateSelectionEvent e) {
  • showSelectedDates((MultiDateChooser) e.getSource());
  • }
  • public static void main(final String[] args) {
  • Runnable gui = new Runnable() {
  • public void run() {
  • new Demo().setVisible(true);
  • }
  • };
  • //GUI must start on EventDispatchThread:
  • SwingUtilities.invokeLater(gui);
  • }
  • }
package demo;
/*
 * Demo.java
 * 
 * This demo shows you how to use a MultiDateChooser
 * and a MultiDateButton.
 * 
 * It displays a MultiDateChooser on the frame.
 * The Button "Show selected Dates" displays the selections made
 * on that date chooser.
 * 
 * The Button "Datechooser Dialog" is a MultiDateButton.
 * It displays a Dialog with another MultiDateChooser.
 * The selections made there are displayed immediately in an OptionPane
 * that pops up via the "DateSelectionListener" which is implemented 
 * directly by this "Demo" class.
 * 
 * The Button "Clear All" clears the selections in both "MultiDateChooser"s
 * (the one in the frame and the one in the dialog).
 */

import chooser.*;
import event.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;
import javax.swing.*;

public class Demo extends JFrame implements ActionListener, DateSelectionListener {

    private JButton btShow,  btClearAll;
    private MultiDateButton btChooserDialog;
    private JPanel mainpanel;
    private JToolBar toolbar;
    private MultiDateChooser chooser;
    private SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");

    public Demo() {
        super("Demo");
        setSize(400, 300);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        mainpanel = new JPanel();
        toolbar = new JToolBar();
        btShow = new JButton("Show selected Dates");
        btChooserDialog = new MultiDateButton("Datechooser Dialog");
        btClearAll = new JButton("Clear All");
        getContentPane().add(mainpanel, BorderLayout.CENTER);
        btShow.addActionListener(this);
        toolbar.add(btShow);
        toolbar.add(btChooserDialog);
        btClearAll.addActionListener(this);
        toolbar.add(btClearAll);
        getContentPane().add(toolbar, BorderLayout.PAGE_START);
        chooser = new MultiDateChooser();
        mainpanel.add(chooser);
        //do some selections programmatically:
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -2);
        chooser.add(cal.getTime());
        cal.add(Calendar.DATE, 5);
        chooser.add(cal.getTime());
        //listen to selection changes in chooser dialog:
        btChooserDialog.addSelectionListener(this);
    }

    private void showSelectedDates(MultiDateChooser source) {
        Set<Date> dates = source.getSelectedDates();
        String str = "";
        for (Date date : dates) {
            str += df.format(date) + "\n";
        }
        str += "\n";
        JOptionPane.showMessageDialog(this, str);
    }

    public void actionPerformed(final ActionEvent e) {
        Object source = e.getSource();
        if (source == btShow) {
            showSelectedDates(chooser);
        } else if (source == btClearAll) {
            chooser.clearSelections();
            btChooserDialog.clearSelections();
        }
    }

    public void dateSelectionChanged(DateSelectionEvent e) {
        showSelectedDates((MultiDateChooser) e.getSource());
    }

    public static void main(final String[] args) {
        Runnable gui = new Runnable() {

            public void run() {
                new Demo().setVisible(true);
            }
        };
        //GUI must start on EventDispatchThread:
        SwingUtilities.invokeLater(gui);
    }
}

 Conclusion

Je n'ai pas trouvé de source analogue gratuite sur tous le réseau. Alors j'ai programmé moi-même le truc..

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

09 novembre 2008 12:30:22 :
Ajout du zip.
09 novembre 2008 15:22:17 :
Ajout du code demo.
09 novembre 2008 18:17:55 :
Ajout d'un "DateSelectionListener".
09 novembre 2008 18:21:04 :
Remplacement du code source du prgamme "Demo".
10 novembre 2008 17:02:16 :
Voila, j'ai fais un effort pour ajouter un peu plus de commentaires dans la source...
11 novembre 2008 03:04:25 :
La source du DateSelectionEvent est maintenant le MultiDateChooser (au lieu du DateSelectionModel). Je pense que c'est plus facile à l'utilisation..
12 novembre 2008 02:30:22 :
Nouveau zip.

 Sources du même auteur

JSCROLLABLETOOLTIP
Source avec Zip Source avec une capture COLONNES D'UNE JTABLE: FAIRE DISPARAÎTRE ET INSÉRER À NOUVEA...
Source avec Zip SIMPLE DATE RENDERER ET DATE EDITOR POUR JTABLE

 Sources de la même categorie

JLABELIMAGE : GESTION D'UNE IMAGE EN ARRIÈRE-PLAN par bob22mael
Source avec Zip SÉLECTEUR DE DATES MULTIPLES, ORIGINE UHRAND par William44290
RECHERCHE D'ELEMENTS DANS UNE JLIST par Ze_Hulk
Source avec Zip Source avec une capture PROGICIEL DE LOCATION DE VOITURE par SoftDeath
Source avec Zip Source avec une capture CALENDRIER ET HORLOGE AVEC LA LIBRAIRIE ORG.JDESKTOP.SWINGX par Cornellus1985

Commentaires et avis

Commentaire de petifa le 09/11/2008 18:29:07

slt,
pas trop de commentaires hormis que c'est très condensé et pas commenté, mais ca se comprend, et je pense que cette source pourras m'être utile,
a tester pour moi :)

Commentaire de uhrand le 10/11/2008 17:07:50

Salut PETIFA,
merci pour ton commentaire.
Si tu télécharge maintenant le zip, tu verras que j'ai commenté un peu plus. Aussi, j'ai lisser un peu le code.

Commentaire de Twinuts le 11/11/2008 19:29:35 administrateur CS

Salut,

merci de bien vouloir sortir les sources du jar.

Commentaire de mihmih le 19/02/2009 18:12:14

merci pour  ce code ca sera un plus pour mon projet

Commentaire de William44290 le 20/07/2009 10:59:39

bonjour je vais essayer d'intégrer ce code à mon source,
par contre pour des raisons de relecture je vous propose cette présentation.

public Demo() {
super("Demo");
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

toolbar = new JToolBar();{
btShow = new JButton("Show selected Dates");{
btShow.addActionListener(this);
}
btChooserDialog = new MultiDateButton("Datechooser Dialog");{
btChooserDialog.addSelectionListener(this);
}
btClearAll = new JButton("Clear All");{
btClearAll.addActionListener(this);
}
toolbar.add(btClearAll);
toolbar.add(btShow);
toolbar.add(btChooserDialog);
}

mainpanel = new JPanel();{
chooser = new MultiDateChooser();{
//do some selections programmatically:
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -2);
chooser.add(cal.getTime());
cal.add(Calendar.DATE, 5);
chooser.add(cal.getTime());
}
mainpanel.add(chooser);
}

getContentPane().add(toolbar, BorderLayout.PAGE_START);
getContentPane().add(mainpanel, BorderLayout.CENTER);
}

Amicalement

Commentaire de uhrand le 22/07/2009 08:17:45

William44290,
je suis content que ma source est utile pour ton projet. Merci pour ton commentaire concernant la présentation. Je vais en tenir compte prochainement.
Cordialement,
André

Commentaire de William44290 le 27/07/2009 17:39:20

Bonjour uhrand,

J'ai travaillé sur ce code mais il m'a été difficile de le reprendre pour l'intégrer dans mon projet notamment :

a) le partage de la liste de dates sélectionnées entre la frame et la boite dialog.
b) la répartition du code dans les différents .JAVA
c) Certain nom (...Model) de class
d) Les type Day, Date & Calendar un peu dispersé


Je me suis permis d'en refaire une autre version en espérant que celle-ci soit plus simple.

je l'ai référencé sur le site sous ce titre
SÉLECTEUR DE DATES MULTIPLES, ORIGINE UHRAND
Amicalement William.

Commentaire de uhrand le 28/07/2009 15:09:41

William44290,
Je ne prétend pas que mon code soit parfait ni qu'il soit complet. Chacun peut le perfectionner et l'adapter comme bon lui semble et suivant les besoins de son projet. Par exemple, je viens de l'intégrer dans un projet qui a besoin des numéros de semaines, que j'ai ajouté dans une colonne du sélecteur. En plus j'ai ajouté deux boutons pour aller au mois courant et au mois de la sélection (en fait, dans ce projet ne fait que des sélections simples). Merci en tout cas d'avoir publié ta version. Je vais l'examiner prochainement.

Commentaire de William44290 le 28/07/2009 17:13:02

En l'occurence la version que je propose n'est pas parfaite et pas complète non plus.

L'intéret principal reste le partage.

Commentaire de jamelEtounsi le 29/11/2009 01:55:29

Merci Monsieur pour votre effort

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales