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 :

JCalendar - Changer couleur certaines dates


Sujet :

Composants Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 95
    Points : 76
    Points
    76
    Par défaut JCalendar - Changer couleur certaines dates
    Bonjour à tous,

    Comme spécifié dans mon titre, je me demandais si il était possible de changer la couleur de certaines dates (bouton en soit) de mon JCalendar?

    Merci d'avance pour vos réponses.

    Edit :

    C'est bon j'ai trouver la solution mp moi si cela cous intéresse !

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 95
    Points : 76
    Points
    76
    Par défaut Solution
    Après quelques mails de votre parts, voilà ma solution à ce problème:


    • Une fois télécharger et dézipper, c'est le dossier src contenant le calendrier qui va nous intéresser.
      Le but est donc de créer un nouveau projet dans votre IDE, à l'aide des sources du Calendrier que l'on vient de dézipper. Il suffit de créer le projet (sous Eclipse par exemple dans mon cas), puis de fusionner le dossiers src créer par défaut avec celui du Calendrier (juste copier/coller le dossier au bon endroit au final )

    • Votre projet devrait désormais contenir les sources du calendrier diviser en différent packages (penser à actualiser le projet). Le package qui va nous intéresser pour colorer des jours de notre choix sera le tout premier, com.toedter.calendar


    En effet, vous pourrez ici définir de nouvelles méthodes directement au sein des classes JDayChooser, JMonthChooser, JYearChooser ! Les solutions sont infinis à présent, et voici par exemple ma manière de procéder (qui n'est certainement pas la meilleur ) mais qui marche :
    • Je crée une méthode public coloDays(String date) au sein de ma classe JDayChooser que je pourrais donc appeler à partir de mon code ensuite.

    • Je fais au sein de cette méthode les vérifications nécessaires afin de voir si ma date se trouve dans la base de donnée, et si c'est le cas, voici le code qui me permet de colorer la date de mon JDayChooser:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
       
      for(int i = 0; i < 49; i++){
      						if(days[i].getText().equals(myDates[2])){
      							days[i].setForeground(new Color(255,102,0));
      						}
      					}

    Il ne vous reste plus que 3 choses à faire désormais.
    Exporter votre Projet Calendrier en un .jar non exécutable.
    Ajouter ce .jar au projet dans lequel vous voulez utiliser votre calendrier en n'oubliant pas de l'ajouter au classpath du projet.
    Et enfin, utiliser votre JDayChooser comme suit ( je vous donne carrément le calendrier que j'ai construit), en utilisant votre méthode colorDays() à l'endroit voulu:
    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
     
    public JDayChooser dayChooser;
    public JMonthChooser monthChooser;
    public JYearChooser yearChooser;
     
    /* */
    dayChooser = new JDayChooser();
    dayChooser.addPropertyChangeListener(listener);
     
    monthChooser = new JMonthChooser();
    monthChooser.setDayChooser(dayChooser);
    monthChooser.addPropertyChangeListener(listener);
     
    yearChooser = new JYearChooser()
    yearChooser.setDayChooser(dayChooser);
    yearChooser.addPropertyChangeListener(listener);
     
    /* */
    private class MyPropertyChangeListener  implements PropertyChangeListener {
    		  public void propertyChange(PropertyChangeEvent evt) {
    		     if (evt.getPropertyName().equals("day") || evt.getPropertyName().equals("month") || evt.getPropertyName().equals("year")) {
    			    	String date = "";
    		    	 	int day = dayChooser.getDay();
    			    	int month = monthChooser.getMonth()+1;
    			    	int year = yearChooser.getYear();
     
    //Ce qui suit dépend du format de la date que vous souhaitez envoyé à votre méthode, ici yyyy-MM-dd
    		    	 if(month < 10 && day < 10){
    		    		 date = year+"-0"+month+"-0"+day;
    			    	dayChooser.colorDays(date);
    		    	 }else if(month >= 10 && day < 10){
    		    		 date = year+"-"+month+"-0"+day;
    				    dayChooser.colorDays(date);
    		    	 }else if(month < 10 && day >= 10){
    		    		 date = year+"-0"+month+"-"+day;
    					 dayChooser.colorDays(date);
    		    	 }else{
    		    		 date = year+"-"+month+"-"+day;
    					 dayChooser.colorDays(date);
    		    	 }
    		    }
    		  }
    Voilà j'espère que ça vous sera utile !

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 46
    Points : 39
    Points
    39
    Par défaut
    Yop,
    tout d'abord, merci pour ta réponse.

    Est ce que tu pourrais me dire ce qu'il y a dans ton day[i] exactement ?
    Exemple : Monday, Tuesday ... ou 01, 02, ... ou 15/October etc...
    J'ai tenté d'afficher ça à travers un System.out.println(days[1]); mais j'ai récupéré ça :
    com.toedter.calendar.JDayChooser$DecoratorButton[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@1113708,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,
    margin=java.awt.Insets[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=false,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=lun.,defaultCapable=true]


    Merci d'avance,

    Steackfrite

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

Discussions similaires

  1. [VB.net] Changer couleur ligne DataGrid
    Par bguihal dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/07/2016, 06h54
  2. Réponses: 3
    Dernier message: 21/03/2012, 23h48
  3. Changer la valeur d'un champ à une certaine date
    Par Yann39 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/12/2007, 15h54
  4. [JCalendar] Highlighter certaines dates
    Par if_zen dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 16/06/2006, 15h45
  5. Ne prendre que les infos avant une certaine date??
    Par mythtvtalk.com dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/07/2003, 10h20

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