Bonjour à tous!
voila mon soucis: je dois concevoir une application ("jtunes") qui est un lecteur de musique mp3
voila à quoi ressemble l'appli (tout n'est pas implémenté) :
mini legende:
1 -> Jlist qui liste les fichiers au format mp3 du fichier séléctionné
2 -> JTable qui listera la playlist actuelle
3 -> les boutons de lecture etc...
mon appli respecte donc le pattern MVC (enfin j'essai)
pour résumer j'ai donc:
- une vue (PlayerView.java que vous voyez)
- un controller
- un modele
le modele contient TOUTES les données necessaires au fonctionnement de l'appli dans un seul fichier model.java.
Mon probleme c'est que lorsque le modele change d'etat et notifie les observateurs:
ma vue va appeler la methode update() ce qui aura pour effet de mettre à jours TOUS les JComponents.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 setChanged(); notifyObservers(o); clearChanged();
vous vous en doutez je voudrais éviter cela et pouvoir ne mettre a jour que ce qui est necessaire.
- j'avais comme 1ere solution de rajouter à toutes les methodes un argument Object arg qui serait le JComponent responsable de l'appel mais j'ai l'impression que ce serait du "bidouillage"
- en 2 je voulais créer 3 modeles différents (et donc 3 controllers) mais je me dis que le pattern observer étant une relation d'un modele à plusieurs vues, cela reviendrait à faire exactement l'inverse...
Pourriez vous me donner la meilleure solution pour avoir une MAJ efficace?
je pense que le probleme est simple a resoudre mais jusque la le modele de mes applis etait plus simple et je n'avait pas encore été confronté à ce soucis...
Merci d'avance pour vos réponses![]()
Partager