La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

TP2... MVC ? JList Contrôleur Vue JLabel Vue JSlider Contrôleur Vue ImageLibrary Modèle contrat Creative Commons Paternité-Pas d'Utilisation.

Présentations similaires


Présentation au sujet: "TP2... MVC ? JList Contrôleur Vue JLabel Vue JSlider Contrôleur Vue ImageLibrary Modèle contrat Creative Commons Paternité-Pas d'Utilisation."— Transcription de la présentation:

1 TP2... MVC ? JList Contrôleur Vue JLabel Vue JSlider Contrôleur Vue ImageLibrary Modèle contrat Creative Commons Paternité-Pas d'Utilisation Commerciale-Partage des Conditions Initiales à l'Identique 2.0 France License

2 Changer l'image courante

3 JList Modèle ImageLibrar y Jslider JLabel

4 Modifier sa taille

5 JList Modèle ImageLibrar y Jslider JLabel

6 Ajouter une nouvelle image

7 JList Modèle ImageLibrar y Jslider JLabel JFileChooser

8 La solution ? JList Modèle ImageLibrar y Jslider JLabel JFileChooser JLabel JSpinner JProgressBar Passage à l'échelle ?? Ajout d'un widget ?!

9 Cas idéal : changer l'image courante JList Modèle ImageLibrar y Jslider JLabel

10 Cas idéal : modifier sa taille JList Modèle ImageLibrar y Jslider JLabel

11 Cas idéal : ajouter une image JList Modèle ImageLibrar y Jslider JLabel JFileChooser 1 nouveau composant = 1 nouvelle connexion au modèle

12 Bilan Rendre les composants indépendants les uns des autres Placer le modèle au centre des dialogues Simplifier l'écriture des interfaces complexes Rendre modifiable / évolutif le code

13 design pattern Un patron pour nous sauver la vie : Observer Observer Update() Observable Attach(Observer) Notify()

14 Observer Design Pattern One to many Abstract coupling between subject and observer, each can be extended and reused individually. Dynamic relationship between subject and observer, such relationship can be established at run time. This gives a lot more programming flexibility. Support for broadcast communication. The notification is broadcast automatically to all interested objects that subscribed to it. Unexpected updates. Observes have no knowledge of each other and blind to the cost of changing in subject. With the dynamic relationship between subject and observers, the update dependency can be hard to track down.

15 Subject Knows it observers Has any number of observer Provides an interface to attach and detaching observer object at run time Observer Provides an update interface to receive signal from subject ConcreteSubject Store subject state interested by observer Send notification to it's observer ConcreteObserver Maintain reference to a ConcreteSubject object Maintain observer state Implement update operation

16 Coder ? import java.util.Observable; import java.util.Observer; public class ImageLibray extend Observable public class MonJLabel implements Observer (& extends JLabel)

17 Un exemple simple 1 Contrôleur 1 Modèle 1 Vue

18 Un exemple simple Modele Integer data; JLabel JtextField

19 Abstraction Modele Integer data; JLabel JTextField Abs 1Abs 2

20 Un exemple simple Modele Integer data; MonJLabel JTextField Observable Modele Integer data; Modele Integer data; ObserverJLabel

21 Un exemple simple Modele Integer data; JTextField Observable Modele Integer data; Modele Integer data; JLabeltoModel Observer JLabel On modélise explicitement le contrôle

22 Un exemple simple Modele Integer data; JTextFieldModele Integer data; Modele Integer data;

23 Un exemple simple Modele Integer data; JTextFieldModele Integer data; Modele Integer data; ActionListener

24 Un exemple simple Modele Integer data; Modele Integer data; Modele Integer data; JtextField JtextFieldToModel ActionListener

25 Un exemple simple complet Modele Integer data; ModeltoJLabel ObservableObserver JLabel JtextField JtextFieldToModel ActionListener

26 Bilan Modèle indépendant Utilisation des classes natives de Swing Passage par des adaptateurs de types Objets simples (1 méthode) Deux interfaces Gèrent le dialogue Transforme les types


Télécharger ppt "TP2... MVC ? JList Contrôleur Vue JLabel Vue JSlider Contrôleur Vue ImageLibrary Modèle contrat Creative Commons Paternité-Pas d'Utilisation."

Présentations similaires


Annonces Google