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 :

MVC pour connecter données et vue automatiquement


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut MVC pour connecter données et vue automatiquement
    Voilà je suis débutant en Java/Swing et je me pose une question pratique:

    Je dispose d'un objet JPersonne que j'ai créé (avec nom, date de naissance, etc...) et d'un panel qui contient tous les widgets swing permettant de modifier ces propriétés. Y-aurait-il un moyen, en implémentant dans ma classe JPersonne les bonnes interfaces, de synchroniser le contenu de mon panel et celui de mon objet ? Ce serait plus élégant que du code spaghetti et j'ai l'impression que le modèle mvc de swing permet de faire ca....

    Merci à tous

  2. #2
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    Par défaut
    Pardon,
    Ce n'est pas une réponse mais, plutôt une demande, est ce que vous pouvez me renseigner sur le model MVC de swing, un lien par exemple.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 65
    Par défaut
    Tu dois avoir des listeners sur chacun des composants de ton formulaire de façon à mettre à jour ton objet JPersonne (d'ailleurs, au passage, c bizarre de faire débuter le nom de ta classe par "J", c'est un nommage spécifique aux JComponent)
    Par exemple, sur un JTextField, il faut qu'à la perte de focus, ton instance de JPersonne soit mise à jour à l'aide de laccesseur setTaPropriete(newValue).

    Sinon, tu as des solutions plus pros utilisant le data binding (http://www.jgoodies.com). Mais c'est assez compliqué. Commence par utiliser des listeners, c'est plus simple et sans doute plus adapté à ce que tu as à faire.

  4. #4
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Par défaut
    La solution la plus adapté est de faire une gestion par rapport à Observer et Observable qui sont assez utile surtout quand on travaille avec le pattern MVC.
    Il faut que ton model (tes données) étend Observable et que tu poses des Observer dans ta vue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ((Observable)model).addObserver(new Observer() {
        public void update(Observable o, Object arg) {
    //ce qu'il doit se passer dans la vue
        }
    });

    Ensuite, chaque fois que tu changes l'état du model tu dois le notifié à tes observers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setChanged();
    notifyObservers();
    Enfin, tout ça fait parti du package java.util.*; .[/code]

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Par défaut MVC ave swing
    Voila un lien pour le MVC simplement avec Swing !

    http://www.cyber06.com/article/mvc.php

  6. #6
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Par défaut
    ta page et les exemples sont bien, dommage que tu ne respectes pas les Code Conventions notamment pour le placement des acolades ..... sinon quelle est l'utilité de mettre un printlln dans un catch(Exception e) ? e.printStackTrace fait la même chose. Même question pour la classe controller car, bien que ton exemple est théoriquement bon, il est prouvé que la classe Controller doit être intégrée dans la classe View...

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Par défaut
    Pourquoi les acolades faut les placer comment?, l'avantage de les placer en fin de ligne c'est que chaque ligne finit par une accolade ou un point virgule, question de choix.

    le println c'est parce que j'ecris : "Erreur:", ou je pourait afficher d'autres choses. Question de choix et puis ca change fondamentalement rien au MVC.

    C'est vrai que certaine théories sur le Pattern MVC tendent a confondre Vue et Controleur d'ailleur Microsoft s'attache à diffuser ce model de conception. cependant séparer le controleur à pour moi un avantage: imaginons que le bouton et le champs texte appartiennent à deux fenetres distinctes: la fenetre qui contient le boutton serait bien indépendante du model. Pour moi c'est interet de cette separation M V C. Je t'accorde que dans le cas de petites applications je ne separe generalement pas les deux tout depend la encore des besoins.

    Je te remercie pour tes commentaires et c'est vrai que je vais rajouter dés que j'ai un peu de temps une partie sur ta remarque concernant le fait de pouvoir séparer ou non C et V.

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/11/2011, 11h03
  2. Login/Mot de passe et récupération des infos pour connection automatique
    Par kitesilver dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 07/06/2007, 14h51
  3. langage pour manipulation données sous MySql
    Par halina dans le forum Administration
    Réponses: 2
    Dernier message: 31/01/2005, 10h33
  4. quel language utiliser pour agir sur un log automatiquent
    Par qegukom dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 05/08/2004, 21h00

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