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

Java Discussion :

Problème d'implémentation du modèle MVC et timer


Sujet :

Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Points : 51
    Points
    51
    Par défaut Problème d'implémentation du modèle MVC et timer
    Bonjour,
    Je réalise un petit projet que je vous explique de façon très simplifiée :

    Mon modèle doit représenter 4 affiches qui sont allumées à des moments différents. Comme attributs du modèle j'ai donc 4 booléens qui indiquent si l'affiche est allumée ou pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    boolean afficheA;
    boolean afficheB;
    boolean afficheC;
    boolean afficheD;
    Je pensais donc créer simplement une classe Affiches qui serait le modèle dans laquelle j'aurais les 4 attributs + une ArrayList<AfficheVue>. Il y aurait en plus une méthode notifyChange() qui notifie les vues lorsque le modèle est modifié et une méthode qui gère les changement de valeurs des 4 attributs (par Timer).
    Chaque affiche a ses propres vues et la valeur d'un seul des attributs change a la fois.

    Mes questions sont deux :

    1/ Pouvez-vous m'aider pour faire changer les valeurs des 4 attributs au fur et à mesure de l'avancement du temps. Comment faire par exemple pour le cycle suivant? Au début afficheA est true, le reste est false. Après 10secondes, tous les attributs sont false. Ensuite après 3secondes afficheB passe à true. Ensuite après 5 secondes toutes les affiches sont à false. Ensuite après 8 secondes afficheC passe à true. Ensuite après 3secondes tout repasse à false. Ensuite après 2secondes on retourne dans la situation initiale (afficheA à true et le reste à false). Une seul attribut change à la fois.

    2/ Si je réalise le modèle comme indiqué plus haut, à chaque changement d'une des valeurs des affiches, un notifyChange() est fait sur TOUTES les vues. Hors je voudrais que le notifyChange() soit fait uniquement sur les vues de l'affiche dont l'attribut a été modifié... Je pensais donc avoir un modèle Affiche par type d'affiche (donc pour afficheA, afficheB, afficheC, afficheD) qui aurait l'arraylist<vues> contenant ses propres vues et la méthode notifyChange() et un modèle au dessus de ça qui gèrerait le tout (ce modèle général dirait au modèle concerné que sa valeur doit changer et le modèle concerné ferait un notifyChange() sur ses vues, ainsi les vues des autres affiches ne seraient pas notifiées). Pourriez-vous m'aider car je ne vois pas comment implémenter ceci...

    Merci d'avance et bonne journée.

  2. #2
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Affiches qui serait le modèle dans laquelle j'aurais les 4 attributs + une ArrayList<AfficheVue>
    Mauvais départ : le modèle ne doit pas référencer la vue directement !

    Quel est ton modèle ? Tu représentes des affiches, donc une affiche = un objet du domaine. Tu auras sans doute une classe Affiche, qui est Observable (pour notifier des modifications), et donc quatre instances de cette classe. Ta classe AfficheVue, qui sera un Observer, s'enregistre auprès de la vue qu'elle représente.
    En premier lieu, utilisez un moteur de recherche.
    En second lieu, postez sur le forum adéquat !

  3. #3
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 318
    Points
    8 318
    Billets dans le blog
    52
    Par défaut
    La notification de la vue se fait souvent avec des listeners.
    Je te laisse voir le tutoriel correspondant ici :
    http://rom.developpez.com/java-listeners/

    Pour le la gestion du temps :
    http://docs.oracle.com/javase/7/docs...TimerTask.html
    Exemple d'utilisation :
    http://www.java2s.com/Code/Java/Deve...havepassed.htm

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

Discussions similaires

  1. [MVC Java] Problème d'implémentation MVC
    Par alex2746 dans le forum MVC
    Réponses: 1
    Dernier message: 13/12/2012, 00h49
  2. Réponses: 0
    Dernier message: 26/06/2010, 19h21
  3. Comment le modèle MVC est-il implémenté?
    Par fayred dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 16/01/2009, 11h01
  4. Implémenter un modèle MVC en C#
    Par callo dans le forum C#
    Réponses: 13
    Dernier message: 22/04/2008, 14h34
  5. Réponses: 5
    Dernier message: 04/03/2007, 15h33

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