|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
JPANEL CALENDRIER
Information sur la source
Description
je soummet cette source rien que pour essayer de contribuer à ce site intéressant, si ça marche ,j'en soumetterais d'autres ;) biensur pa tres grosse :) voilà lors d'un projet j'ai eu besoin d'un calendrier en bouttons don j'ai dû developper cette classe qui hérite d'un JPanel , reétulisable qui présente presque un calendrier mais quii marche mois par mois /// les jour sont affichés sur des bouton donc il suffit d'ajoputer des procedure dans l'actionPerformed pour éditer un RDV ou consulter l'hisorique d'un audiot ou autre .. à vous de voir selon le besoin
Source
- import java.awt.event.*;
- import javax.swing.*;
- import java.util.*;
-
-
- class Calendrier extends JPanel implements ActionListener{
-
- JPanel container;
- Vector btnVect = new Vector();
- SButton suiv;
- SButton prec;
-
- int x0,y0,mois,annee;//x0 et y0 sont les coordonnées pour setLocation
-
- Calendrier(int x0,int y0,int iMois,int iAnnee,JPanel container){
- super();
- this.container = container;
- this.x0 = x0;
- this.y0 = y0;
- this.mois = iMois;
- this.annee = iAnnee;
- container.setLayout(null);
- setOpaque(false); //si vous utiliser une image comme fond
- setBounds(x0,y0,420,360);
- setLayout(null);
- container.add(this);
-
- prec = new SButton("<<",100,0,50,28,true,this);
- new SLabel(string(iMois)+" "+iAnnee,1,14,150,0,120,30,this);
- suiv = new SButton(">>",270,0,50,28,true,this);
- prec.addActionListener(this);
- suiv.addActionListener(this);
- new SLabel("Dim",1,12,0,30,60,30,this);
- new SLabel("Lun",1,12,60,30,60,30,this);
- new SLabel("Mar",1,12,120,30,60,30,this);
- new SLabel("Mer",1,12,180,30,60,30,this);
- new SLabel("Jeu",1,12,240,30,60,30,this);
- new SLabel("Ven",1,12,300,30,60,30,this);
- new SLabel("Sam",1,12,360,30,60,30,this);
-
- remplirVect();
- afficherGrille(iMois,iAnnee);
- }
-
- //procedure de remplissage du vecteur par des boutton standard
- public void remplirVect(){
- int ligne = 0;
- while (ligne<6){
- int colonne = 0;
- while( colonne<7){
- JButton btn = new JButton();
- btn.setBounds(colonne*60,(ligne*60)+60,60,60);
- btn.setVisible(false);
- btnVect.addElement(btn);
- colonne++;
- }
- ligne++;
- }
- }
-
- public void afficherGrille(int iMois,int iAnnee){
- for (int i = jour(iAnnee,iMois,1);i<(jour(iAnnee,iMois,1)+nbreJour(iMois,iAnnee));i++){
- JButton b = new JButton();
- b = (JButton)btnVect.elementAt(i-1);
- b.setVisible(true);
- b.setLabel(new Integer(i-jour(iAnnee,iMois,1)+1).toString());
- add(b);
- b.addActionListener(this);
- }
- }
-
-
- public int jour(int annee,int mois, int jour){
- int retour = 0;
- for(int i=1900;i<annee;i++)
- if(i%4 == 0)retour+=366;
- else retour+=365;
- for(int i=1;i<mois;i++){
- if((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))retour+=31;
- if((i==4)||(i==6)||(i==9)||(i==11))retour+=30;
- if((i==2)&&(annee%4==0))retour+=29;
- if((i==2)&&(annee%4!=0))retour+=28;
- }
- for(int i=0;i<jour;i++)
- retour+=1;
- if(retour%7==0) retour = 7;
- else retour = retour%7;
- return (retour);
- }
-
- public String string(int i){
- String retour = new String();
-
- switch(i){
- case 1 : { retour ="Janvier";break; }
- case 2 : { retour ="Février";break; }
- case 3 : { retour ="Mars";break; }
- case 4 : { retour ="Avril";break; }
- case 5 : { retour ="Mai";break; }
- case 6 : { retour ="Juin";break; }
- case 7 : { retour ="Juillet";break; }
- case 8 : { retour ="Aout";break; }
- case 9 : { retour ="Septembre";break; }
- case 10: { retour ="Octobre";break; }
- case 11: { retour ="Novembre";break; }
- case 12: { retour ="Décembre";break; }
- }
- return retour;
- }
-
- public int nbreJour(int mois,int annee){
- int retour = 0;
-
- switch(mois){
- case 1 : { retour = 31;break; }
- case 2 : {
- if(annee%4 == 0) retour = 29;
- else retour = 28;
- break; }
- case 3 : { retour =31;break; }
- case 4 : { retour =30;break; }
- case 5 : { retour =31;break; }
- case 6 : { retour =30;break; }
- case 7 : { retour =31;break; }
- case 8 : { retour =31;break; }
- case 9 : { retour =30;break; }
- case 10: { retour =31;break; }
- case 11: { retour =30;break; }
- case 12: { retour =31;break; }
- }
- return retour;
- }
-
- public void actionPerformed(ActionEvent e){
- if(e.getSource() == suiv){
- container.removeAll();
- int m,a;
- if(mois==12){
- m=1;
- a=annee+1;}
- else{
- m=mois+1;
- a=annee;}
- container.add(new Calendrier(x0,y0,m,a,container));
- container.repaint();
- }
- if(e.getSource() == prec){
- container.removeAll();
- int m,a;
- if(mois==1){
- m=12;
- a=annee-1;}
- else{
- m=mois-1;
- a=annee;}
- container.add(new Calendrier(x0,y0,m,a,container));
- repaint();
- }
- }
-
- }
-
- // les deux classes qui suivent font partie de ma bibliothèque de composants personélisée
- // changer les si elles vous plaisent pa ;)
-
- //****************************************************************/
- //label personalisé
- /****************************************************************/
-
- class SLabel extends JLabel{
-
- public SLabel(String label,int horizental,int taillePolice,int x0,int y0,int x,int y,JPanel contentPane){
- super(label);
- setFont(new java.awt.Font("Monospaced", 1, taillePolice));
- setBounds(x0,y0,x,y);
- if(horizental == 0)
- setHorizontalAlignment(SwingConstants.LEFT);
- if(horizental == 1)
- setHorizontalAlignment(SwingConstants.CENTER);
- if(horizental == 2)
- setHorizontalAlignment(SwingConstants.RIGHT);
- contentPane.add(this);
-
- }
- }
-
-
- /****************************************************************/
- // Boutons personalisé
- /***************************************************************/
-
- class SButton extends JButton{
- public SButton(String label,int x0,int y0,int x,int y,boolean visible,JPanel contentPane){
- super(label);
- setFont(new java.awt.Font("Monospaced", 1, 14));
- setBounds(x0,y0,x,y);
- setVisible(visible);
- setOpaque(false);
- contentPane.add(this);
- }
- }
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
class Calendrier extends JPanel implements ActionListener{
JPanel container;
Vector btnVect = new Vector();
SButton suiv;
SButton prec;
int x0,y0,mois,annee;//x0 et y0 sont les coordonnées pour setLocation
Calendrier(int x0,int y0,int iMois,int iAnnee,JPanel container){
super();
this.container = container;
this.x0 = x0;
this.y0 = y0;
this.mois = iMois;
this.annee = iAnnee;
container.setLayout(null);
setOpaque(false); //si vous utiliser une image comme fond
setBounds(x0,y0,420,360);
setLayout(null);
container.add(this);
prec = new SButton("<<",100,0,50,28,true,this);
new SLabel(string(iMois)+" "+iAnnee,1,14,150,0,120,30,this);
suiv = new SButton(">>",270,0,50,28,true,this);
prec.addActionListener(this);
suiv.addActionListener(this);
new SLabel("Dim",1,12,0,30,60,30,this);
new SLabel("Lun",1,12,60,30,60,30,this);
new SLabel("Mar",1,12,120,30,60,30,this);
new SLabel("Mer",1,12,180,30,60,30,this);
new SLabel("Jeu",1,12,240,30,60,30,this);
new SLabel("Ven",1,12,300,30,60,30,this);
new SLabel("Sam",1,12,360,30,60,30,this);
remplirVect();
afficherGrille(iMois,iAnnee);
}
//procedure de remplissage du vecteur par des boutton standard
public void remplirVect(){
int ligne = 0;
while (ligne<6){
int colonne = 0;
while( colonne<7){
JButton btn = new JButton();
btn.setBounds(colonne*60,(ligne*60)+60,60,60);
btn.setVisible(false);
btnVect.addElement(btn);
colonne++;
}
ligne++;
}
}
public void afficherGrille(int iMois,int iAnnee){
for (int i = jour(iAnnee,iMois,1);i<(jour(iAnnee,iMois,1)+nbreJour(iMois,iAnnee));i++){
JButton b = new JButton();
b = (JButton)btnVect.elementAt(i-1);
b.setVisible(true);
b.setLabel(new Integer(i-jour(iAnnee,iMois,1)+1).toString());
add(b);
b.addActionListener(this);
}
}
public int jour(int annee,int mois, int jour){
int retour = 0;
for(int i=1900;i<annee;i++)
if(i%4 == 0)retour+=366;
else retour+=365;
for(int i=1;i<mois;i++){
if((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))retour+=31;
if((i==4)||(i==6)||(i==9)||(i==11))retour+=30;
if((i==2)&&(annee%4==0))retour+=29;
if((i==2)&&(annee%4!=0))retour+=28;
}
for(int i=0;i<jour;i++)
retour+=1;
if(retour%7==0) retour = 7;
else retour = retour%7;
return (retour);
}
public String string(int i){
String retour = new String();
switch(i){
case 1 : { retour ="Janvier";break; }
case 2 : { retour ="Février";break; }
case 3 : { retour ="Mars";break; }
case 4 : { retour ="Avril";break; }
case 5 : { retour ="Mai";break; }
case 6 : { retour ="Juin";break; }
case 7 : { retour ="Juillet";break; }
case 8 : { retour ="Aout";break; }
case 9 : { retour ="Septembre";break; }
case 10: { retour ="Octobre";break; }
case 11: { retour ="Novembre";break; }
case 12: { retour ="Décembre";break; }
}
return retour;
}
public int nbreJour(int mois,int annee){
int retour = 0;
switch(mois){
case 1 : { retour = 31;break; }
case 2 : {
if(annee%4 == 0) retour = 29;
else retour = 28;
break; }
case 3 : { retour =31;break; }
case 4 : { retour =30;break; }
case 5 : { retour =31;break; }
case 6 : { retour =30;break; }
case 7 : { retour =31;break; }
case 8 : { retour =31;break; }
case 9 : { retour =30;break; }
case 10: { retour =31;break; }
case 11: { retour =30;break; }
case 12: { retour =31;break; }
}
return retour;
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == suiv){
container.removeAll();
int m,a;
if(mois==12){
m=1;
a=annee+1;}
else{
m=mois+1;
a=annee;}
container.add(new Calendrier(x0,y0,m,a,container));
container.repaint();
}
if(e.getSource() == prec){
container.removeAll();
int m,a;
if(mois==1){
m=12;
a=annee-1;}
else{
m=mois-1;
a=annee;}
container.add(new Calendrier(x0,y0,m,a,container));
repaint();
}
}
}
// les deux classes qui suivent font partie de ma bibliothèque de composants personélisée
// changer les si elles vous plaisent pa ;)
//****************************************************************/
//label personalisé
/****************************************************************/
class SLabel extends JLabel{
public SLabel(String label,int horizental,int taillePolice,int x0,int y0,int x,int y,JPanel contentPane){
super(label);
setFont(new java.awt.Font("Monospaced", 1, taillePolice));
setBounds(x0,y0,x,y);
if(horizental == 0)
setHorizontalAlignment(SwingConstants.LEFT);
if(horizental == 1)
setHorizontalAlignment(SwingConstants.CENTER);
if(horizental == 2)
setHorizontalAlignment(SwingConstants.RIGHT);
contentPane.add(this);
}
}
/****************************************************************/
// Boutons personalisé
/***************************************************************/
class SButton extends JButton{
public SButton(String label,int x0,int y0,int x,int y,boolean visible,JPanel contentPane){
super(label);
setFont(new java.awt.Font("Monospaced", 1, 14));
setBounds(x0,y0,x,y);
setVisible(visible);
setOpaque(false);
contentPane.add(this);
}
}
Conclusion
je ne pense pas qu'il y a grand choz à expliquer , le code est simple mais utile seulement à mon avi mais s'il y a des question ou des conseils pour m'amiliorer n'hésitez pas , et merci d'avance :)
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Historique
- 29 août 2005 10:11:08 :
- il y avait une petite erreur de saisie
g changé "Grille" par "Calendrier" dans actionPerformed
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Diff dates [ par alonsyl ]
bonjour, je cherche un petit prg pour calculer la duree séparant la date actuelle d'une date t (le 17/8/2005 a 18h 48min 5s). je voudrais que le
mettre à jour un JPanel [ par tuffd ]
Bonjour,J'ai un programme dans lequel je dessine des forme dans un JPanel,L'utilicateur selection la forme et fait un clique sur l'ecran.Quan je chois
affichage et rafraichissement de l'heure dans une page JSP [ par aminos88 ]
Bonjour ;j'ai un code java inserrer dans une page JSP qui affiche l'heure dans une page web mais le probleme que je doit chaque foix actualiser la pag
ActionListener [ par amededaille ]
Bonjour, Je dois créer dans le cadre de mes études une palette graphique. Le langage utilisé est JAVA. Je dois, lorsque je clique sur un bouton - qui
Rafraichir un JPanel [ par mannouw ]
Bonjour à tous ,J'ai un panel qui contient plusieurs labels et buttons le nombre de ces derniers dépendent d'un variable.J'ai essayé de rafraichir le
Insérer un jTextfield dans un jPanel [ par roura22 ]
Salut à tous, J'utilise dans mon application la bibliothèque Swing. J'ai crée un jPanel à l'aide de cette bibliothèque, je veux maintenant insérer un
Problème JFileChooser dans un applet [ par mikevkb ]
Bonjour ts! Voilà, j'ai un problème avec un JFilechooser... Explications: J'ai un applet et j'aimerais récupérer le nom des fichiers dans un dossier
jButton et jTabbedPane... [ par FordNYR ]
j'ai une interface qui contient un JTabbedPane avec plusieurs JPanel...je veut utiliser une seul JButton qui fonctionne pour tous les
Proble GridLayout [ par sayone ]
Bonjour à tous,Je suis débutant et je dois créer une genre d'interface graphique mais le probleme c'est que je n'arrive pas à positionner les texte et
probleme de rafraichissement d'un JPanel [ par chien57 ]
j'affiche des éléments graphic dans un JPanel et ses éléments se déplace après avoir calculer la nouvelle position je veut rafraichir le JPanel et po
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC Magic
Entre 429€ et 429€
|