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 :

Semainier en java


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Par défaut Semainier en java
    Bonjour à tous,

    Malgré de nombreuses recherches sur le net, je ne suis pas parvenu à trouver une interface swing pour décrire un emploi du temps sur une semaine (du lundi au dimanche). Est ce quelqu'un aurait connaissance d'une GUI de ce genre ? (je n'ai trouvé que jcalendar pour l'instant mais cela sert plus pour la gestion de dates)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Décris un peu plus ce que tu veux faire, car il existe plusieurs méthodes possible pour arriver à ce que tu veux. (Utiliser une grille de composants, dessiner à même un composant, une JTable ...). Donc tout dépend de ce qque doit contenir ton calendrier

  3. #3
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Par défaut
    En fait, je dois faire un planning d'activité qui se déroule sur une semaine avec trois tranches par jour(matin midi et soir) du lundi au dimanche. Dans chaque tranche de la journée je vais ajouter un Jbutton pour pouvoir ajouter une activité sur cette tranche. En gros c'est comme une semaine de cours, tu peux rajouter histoire le lundi matin, maths l'après midi et sport le soir. A signaler que mes tranches sont de tailles fixes (on ne fait pas de gestion d'horaires). Voila en esperant avoir mieux décrit le problème.
    En fait ce qui serait pratique c'est d'avoir un composant comme ca, avec des comportements génériques à gérer pour mes boutons d'ajouts et de suppression d'activité.

  4. #4
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut
    Le mieux serait je pense un gridBagLayout non?
    La JTable serait je pense une mauvais idée si il y a des composants à mettre dans certaine celulle, mais c'est faisable quand même.
    Je pense donc que le mieux pour toi serait un GridBagLayout où même un GridLayout si toutes les celulles sont de même taille.

    Voilà comment je verrais cà:

    -Au départ, dans chaque celulle, tu met un JButton.
    -Tu met un ActionListener sur celui-ci t'affichant une boîte de dialogue avec un textField et un bouton "valider",BoxLayout par exemple.
    -ActionListenr sur ce bouton
    -Le JButton de la grille est remplacé par un JLabel contenant l'activité.

    Si j'ai bien compris ce que tu voulais faire, çà doit être çà

  5. #5
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Par défaut
    C'est un gridlayout que je pensais utiliser. En effet mes cellules sont de même tailles, maintenant le plus dur ca va etre de gerer ce planning en fonction des semaines (en gros la mise a jour du planning) avec toutes ces problématiques de date.C'est vraiment pas évident. Peut etre avez vous des conseils à me donner pour ceux qui ont deja programmé un composant de ce genre ?

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Grosso modo tu récupère l'ensemble des jours de la semaine (ensuite tout dépend de l'optique sur laquelle tu pars: afficher la semaine, le mois ...) en utilisant un GregorianCalendar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");
                Date d = sdf.parse("03/07/2006"); //le jour de début
                GregorianCalendar c = new GregorianCalendar(Locale.FRANCE);
                c.setTime(d);
                //Pour avoir les jours suivants            
                for(int i =0; i<=7; i++) {
                    c.add(GregorianCalendar.DATE,1);
                    System.out.println(sdf.format(c.getTime()));
                }

    Puis tu crées les composants dont j'ai parlé au poste précédent et les agences comme tu veux.

    Ensuite il faut voire comment tu veux les agencer

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Dans ton cas c'est une demande tout même relativement spécifique.
    Le plus simple dans ce genre de cas c'est le do it yourself, et ça ne devrait pas être trop difficile:

    Comme base de ton appli tu prendra avant tout un GregorianCalendar qui te permettra de récupérer tout ce qui concerne les jours, mois et ainsi de suite (je te laisse voire c'est dans l'ensemble relativement simple d'utilisation)

    Ensuite chaque jour sera représenté par un panel utilisant un GridBagLayout (Une grille n*n), dans ton cas un 3*3 et ayant en paramètre de constructeur une date
    La première ligne sera entièrement occupée par un JPanel contenant le titre (le jour, la date et ainsi de suite), éventuellement tu pourras le redéfinir pour qu'il agrément un peu son aspect en utilisant un Gradient de la façon suivante.

    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
    class GradientPanel extends JPanel {
     public void paintComponent(Graphics g) {
     super.paintComponent(g);
    
      if (!isOpaque()) {
     return;
     }
    
      int width = getWidth();
     int height = getHeight();
    
      Graphics2D g2 = (Graphics2D) g;
    
      Paint storedPaint = g2.getPaint();
     g2.setPaint(new GradientPaint(0, height/2, new Color(0,0,130), width, height/2,
     Color.WHITE));
     g2.fillRect(0, 0, width, height);
     g2.setPaint(storedPaint);
     }
     }
    
    La ligne suivante comportera les trois cases affichant le contenu des tranches (ça peut être un JLabel, comme autre chose, comme tu le sens) et enfin la dernière ligne contiendra les trois boutons, un par tranche. A chaque bouton tu associeras une classe héritant d'AbstractAction (par la méthode setAction) et redéfinissant la méthode ActionPerformed pour effectuer les actions voulues (surement l'apparition d'un dialogue et la mise à jour des données une fois le dialogue validé)

    Voilà une fois ceci réalisé il te suffit de de créer autant de panels que de dates visibles, de les organiser via un GridLayout ou un GridBagLaout (je ne sais plus si on peut "sauter" des cases dans un GridLayout, dans le GrisBag par contre c'est sûr)



    ++

Discussions similaires

  1. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  2. Envoi de Datagrames par IP en JAVA
    Par the java lover dans le forum Développement
    Réponses: 2
    Dernier message: 14/08/2002, 11h44
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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