[Java] Gestionnaire de planning employé ?

Gestionnaire de planning employé ? [Java] - Java - Programmation

Marsh Posté le 26-07-2004 à 17:19:40    

Bonjour a tous,
 
Je suis en train de faire un gestionnaire de planning en java (fiche employé, heure sup, recup etc.) mais je ne sais pas trop comment presenter tout ca ... comment afficher le calendrier (sachant qu'il doit etre cliquable et selectionnable ).
 
J'ai pensé dans un premier utiliser des JTable ...
 
Voila qu'en pensez vous ?
 
Merci d'avance

Reply

Marsh Posté le 26-07-2004 à 17:19:40   

Reply

Marsh Posté le 27-07-2004 à 09:42:06    

avant de penser à des JTable et autres, il vaut mieux dessiner sur papier comment tu comptes visualiser les choses... ce sera bôcoup plus facile après


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 27-07-2004 à 11:15:53    

ben oui je sais deja comment ca sera ...pour l'instant je pense que je vais me tourner vers la solution dessin total avec des drawLine et compagnie ...
 
Parce qu'en fait je dois pouvoir afficher les planning par semaine, mois, trimestre ...donc ...
Mais je sens que ca va pas etre facile ...

Reply

Marsh Posté le 27-07-2004 à 14:55:57    

pour l'instant je pense que je vais faire une classe Tache (date, h deb, h fin,intitulé) et qu'avec chaque entrée de ma base de donnée je remplis un objet tache ...m'enfin c'est pas encore toute a fait clair tout ca

Reply

Marsh Posté le 27-07-2004 à 15:31:14    

Reply

Marsh Posté le 27-07-2004 à 16:01:37    

ca a l'air bien mais pas moyen de le tester ...il manque des classes ...


Message édité par boubavic le 27-07-2004 à 16:01:52
Reply

Marsh Posté le 27-07-2004 à 16:52:24    

boubavic a écrit :

ca a l'air bien mais pas moyen de le tester ...il manque des classes ...


tout est la, ce qui manque est ailleurs dans la repository

Reply

Marsh Posté le 27-07-2004 à 18:49:32    

vu tout ce qu'il y a ca va etre assez chaud de tout retrouver ...m'enfin merci je vais prospecter dans cette voie histoire d'avoir des ptites idées

Reply

Marsh Posté le 27-07-2004 à 18:50:51    

boubavic a écrit :

vu tout ce qu'il y a ca va etre assez chaud de tout retrouver ...m'enfin merci je vais prospecter dans cette voie histoire d'avoir des ptites idées


de toutes facons, l'idée ce n'est pas de tout reprendre tel quel, mais de te proposer une autre piste que la JTable.  
 
Tu peux regarder en gros comment sont organisés les MonthView & DayView, ca devrait suffire.

Reply

Marsh Posté le 28-07-2004 à 16:56:18    

Salut,
 
J'ai cette classe qui dessine un simple cadrillage.
 
J'aimerai savoir comment faire pour donner une taille fixe au panel...(et donc jouer sur les scrollbar pour la visualisation)
 
Par ce que le cadrillage actuel est trop petit a mon gout en largeur...je voudrais donc fixé une taille pour le JPanel
 
et donc faire :
 
WeekView toto = new WeekView();
JFrame frame = new JFrame ();
frame.getContentPane().add(new JScrollPane(toto));
 
 

Code :
  1. public class WeekView extends JPanel {
  2. public void paintComponent(Graphics comp) {
  3.  //setSize(2000,768);
  4.  int tmp = (getWidth()-6)/20;
  5.  int tmp2 = (getHeight()-6)/7;
  6.  Graphics2D comp2D = (Graphics2D) comp;
  7.  comp2D.drawRect(2,2,getWidth()-6,getHeight()-6);
  8.  for (int i = 0; i<7;i++) {
  9.   comp2D.drawLine(2,2+(i*tmp2),getWidth()-6,2+(i*tmp2));
  10.  }
  11.  for (int i = 0; i<20;i++) {
  12.   comp2D.drawLine(2+(i*tmp),2,2+(i*tmp),getHeight()-6);
  13.  }
  14.  //comp2D.drawString("toto",315,300);
  15. }
  16. }


 
Merci a vous

Reply

Marsh Posté le 28-07-2004 à 16:56:18   

Reply

Marsh Posté le 29-07-2004 à 10:33:39    

1-Définis un contructor pour ta classe et met la taille que tu désire: setSize(getPreferredSize())
 
2- redefinis getPreferredSize(), getMinimumSize() et getMaximumSize() et mets les tailles que tu desires
 


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
Reply

Marsh Posté le 29-07-2004 à 15:49:25    

merci bcp ca marche mieux comme ca ;)
 
Par contre j'ai encore une question, quelle fonction je dois utiliser pour rafraichir correctement ma fenetre quand j'utilise les scrollbar ? Parce que pour l'instant ben ca me fait comme si ben ca redessinait au meme endroit au fur et a mesure

Reply

Marsh Posté le 30-07-2004 à 08:36:07    

up

Reply

Marsh Posté le 30-07-2004 à 10:04:20    

http://forum.tt-hardware.com/uploads/repainy.1091174627.JPG
 
Voila ce que je voudrais eviter merci

Reply

Marsh Posté le 30-07-2004 à 10:16:44    

utiliser JScrollPane a la place des scrollBar
 
code:
JPanel monComposant=new JPanel();

Code :
  1. JScrollPane scrolls= new JScrollPane(monComposant);
  2. //remplacer mon composant par le composant que tu desires mettre des scrolls la dessus
  3. mafenetre.add(scrolls);


 
ça devrait marcher je pense


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
Reply

Marsh Posté le 30-07-2004 à 10:26:23    

bah c'est un jscrollpane

Code :
  1. public class Principale extends JFrame {
  2. public Principale() {
  3.   jPanel1 = new WeekView();
  4.   /*...*/
  5.   split = new JSplitPane (JSplitPane.HORIZONTAL_SPLIT ,new JScrollPane(myTree) , new JScrollPane(jPanel1));
  6.   /*...*/
  7. }
  8. /*...*/
  9. class WeekView extends JPanel {
  10. public WeekView() {
  11.  setSize(getPreferredSize());
  12.  setPreferredSize(new Dimension(2048,500));
  13.  setMinimumSize(new Dimension(2048,500));
  14.  setMaximumSize(new Dimension(2048,500));
  15. }
  16. public void paintComponent(Graphics comp) {
  17.  int tmp = (getWidth()-6)/20;
  18.  int tmp2 = (getHeight()-6)/7;
  19.  Graphics2D comp2D = (Graphics2D) comp;
  20.  //les jours de la semaine
  21.  for (int i = 0; i<MyUtil.DAY.length;i++) {
  22.   comp2D.drawString(MyUtil.DAY[i],8,(tmp2*i)+70);
  23.  }
  24.  //les heures
  25.  for (int i = 7; i<23;i++) {
  26.   if (i < 10)
  27.    comp2D.drawString("0"+i+"h00",tmp*(i-7)+70,15);
  28.   else
  29.    comp2D.drawString(i+"h00",tmp*(i-7)+70,15);
  30.  }
  31.  //comp2D.drawRect(60,30,getWidth()-6,getHeight()-6);
  32.  for (int i = 0; i<7;i++) {
  33.   comp2D.drawLine(60,30+(i*tmp2),getWidth()-6,30+(i*tmp2));
  34.  }
  35.  for (int i = 0; i<20;i++) {
  36.   comp2D.drawLine(60+(i*tmp),30,60+(i*tmp),getHeight()-6);
  37.  }
  38.  //update(comp);
  39.  //comp2D.drawString("toto",315,300);
  40.  //repaint();
  41. }
  42. }

Reply

Marsh Posté le 30-07-2004 à 11:11:17    

je vois pourquoi (jespere) :)  
rajoute en debut de ta methode paintComponent(...) l'appelle a ta super classe
fais  

Code :
  1. super.paintComponent(comp);


pour evitre le flashing
 
le code devrait ressembler a ça
 
 

Code :
  1. public class Principale extends JFrame {
  2.    
  3. public Principale() {
  4.         jPanel1 = new WeekView();
  5.         /*...*/
  6.         split = new JSplitPane (JSplitPane.HORIZONTAL_SPLIT ,new JScrollPane(myTree) , new JScrollPane(jPanel1));
  7.         /*...*/
  8.     }
  9.    
  10.     /*...*/
  11.     class WeekView extends JPanel {
  12.        
  13.        public WeekView() {
  14.           setSize(getPreferredSize());
  15.           setPreferredSize(new Dimension(2048,500));
  16.           setMinimumSize(new Dimension(2048,500));
  17.           setMaximumSize(new Dimension(2048,500));
  18.        }
  19.        
  20.        public  void paintComponent(Graphics comp) {
  21.          
  22.          
  23.          
  24.           int tmp = (getWidth()-6)/20;
  25.           int tmp2 = (getHeight()-6)/7;
  26.          
  27.           Graphics2D comp2D = (Graphics2D) comp;
  28.          
  29.           //les jours de la semaine
  30.           for (int i = 0; i<MyUtil.DAY.length;i++) {
  31.              comp2D.drawString(MyUtil.DAY[i],8,(tmp2*i)+70);
  32.              
  33.           }
  34.          
  35.           //les heures
  36.           for (int i = 7; i<23;i++) {
  37.              if (i < 10)
  38.                 comp2D.drawString("0"+i+"h00",tmp*(i-7)+70,15);
  39.              else 
  40.                 comp2D.drawString(i+"h00",tmp*(i-7)+70,15);
  41.           }
  42.          
  43.           //comp2D.drawRect(60,30,getWidth()-6,getHeight()-6);
  44.          
  45.           for (int i = 0; i<7;i++) {
  46.              comp2D.drawLine(60,30+(i*tmp2),getWidth()-6,30+(i*tmp2));
  47.           }
  48.          
  49.           for (int i = 0; i<20;i++) {
  50.              comp2D.drawLine(60+(i*tmp),30,60+(i*tmp),getHeight()-6);
  51.           }
  52.           //update(comp);
  53.           //comp2D.drawString("toto",315,300);
  54.           //repaint();
  55.        }
  56.     }


 
jespere que cette fois ce sera bon


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
Reply

Marsh Posté le 30-07-2004 à 11:12:14    

je vois pourquoi (jespere) :)  
rajoute en debut de ta methode paintComponent(...) l'appelle a ta super classe
fais  

Code :
  1. super.paintComponent(comp);


pour evitre le flashing
 
le code devrait ressembler a ça
 
 

Code :
  1. public class Principale extends JFrame {
  2.    
  3. public Principale() {
  4.         jPanel1 = new WeekView();
  5.         /*...*/
  6.         split = new JSplitPane (JSplitPane.HORIZONTAL_SPLIT ,new JScrollPane(myTree) , new JScrollPane(jPanel1));
  7.         /*...*/
  8.     }
  9.    
  10.     /*...*/
  11.     class WeekView extends JPanel {
  12.        
  13.        public WeekView() {
  14.           setSize(getPreferredSize());
  15.           setPreferredSize(new Dimension(2048,500));
  16.           setMinimumSize(new Dimension(2048,500));
  17.           setMaximumSize(new Dimension(2048,500));
  18.        }
  19.        
  20.        public  void paintComponent(Graphics comp) {
  21.          
  22.           super.paintComponent(comp);
  23.          
  24.           int tmp = (getWidth()-6)/20;
  25.           int tmp2 = (getHeight()-6)/7;
  26.          
  27.           Graphics2D comp2D = (Graphics2D) comp;
  28.          
  29.           //les jours de la semaine
  30.           for (int i = 0; i<MyUtil.DAY.length;i++) {
  31.              comp2D.drawString(MyUtil.DAY[i],8,(tmp2*i)+70);
  32.              
  33.           }
  34.          
  35.           //les heures
  36.           for (int i = 7; i<23;i++) {
  37.              if (i < 10)
  38.                 comp2D.drawString("0"+i+"h00",tmp*(i-7)+70,15);
  39.              else 
  40.                 comp2D.drawString(i+"h00",tmp*(i-7)+70,15);
  41.           }
  42.          
  43.           //comp2D.drawRect(60,30,getWidth()-6,getHeight()-6);
  44.          
  45.           for (int i = 0; i<7;i++) {
  46.              comp2D.drawLine(60,30+(i*tmp2),getWidth()-6,30+(i*tmp2));
  47.           }
  48.          
  49.           for (int i = 0; i<20;i++) {
  50.              comp2D.drawLine(60+(i*tmp),30,60+(i*tmp),getHeight()-6);
  51.           }
  52.           //update(comp);
  53.           //comp2D.drawString("toto",315,300);
  54.           //repaint();
  55.        }
  56.     }


 
jespere que cette fois ce sera bon


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
Reply

Marsh Posté le 30-07-2004 à 11:35:46    

[:drapo] ( j'ai un planificateur de tache a programmer )

Reply

Marsh Posté le 30-07-2004 à 11:42:04    

cad ? tu peux en dire plus ?

Reply

Marsh Posté le 30-07-2004 à 11:44:09    

Merci a toi axk47 ... ca marche mieux ;) ....tu peux m'expliquer pourquoi d'ailleurs ? (tant qu'a faire que je comprenne). D'ailleurs je sais pas a quoi ca sert ce "super(***)"

Reply

Marsh Posté le 30-07-2004 à 11:44:25    

je marque ce topic pour le retrouver facilement
je dois faire une appli de sauvegarde de données  
et donc il y aura un planificateur de tache hebdomadaire a faire  
je ne savais pas trop par quel bout j'allais attaqué ce probleme et j'ai recuper qq idée ici

Reply

Marsh Posté le 30-07-2004 à 13:44:15    

boubavic a écrit :

Merci a toi axk47 ... ca marche mieux ;) ....tu peux m'expliquer pourquoi d'ailleurs ? (tant qu'a faire que je comprenne). D'ailleurs je sais pas a quoi ca sert ce "super(***)"


 
Tant mieux si ça marche :jap:  
 
l'appelle a

Code :
  1. super.paintComponent(comp)

permet d'eviter le flashing et de faire un repaint() correct...
 
j'arrete mon blabla et je te file un lien qui explique tout ça clairement
pour jette un coup d'oeil dans la doc suivante (in english, mais c tres clair pour un programmeur)  
http://java.sun.com/products/jfc/t [...] index.html
 
si t'as d'autres questions n'hésite pas


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
Reply

Marsh Posté le 30-07-2004 à 14:34:44    

merci ca m'avait saouler cette histoire... le probleme c'est que c'est toujours des ptits probleme a la con dans ce genre ... m'enfin

Reply

Marsh Posté le 30-07-2004 à 19:08:55    


 
c'est quoi qu'on vois dans ta barre de titre ?

Reply

Marsh Posté le 31-07-2004 à 19:15:23    

en haut a droite en vert ? c'est une extension des drivers nvidia tout simplemenent

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed