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 JLabel JSlider ImageLibrary Contrôleur Vue Modèle

Présentations similaires


Présentation au sujet: "TP2 ... MVC ? JList JLabel JSlider ImageLibrary Contrôleur Vue Modèle"— Transcription de la présentation:

1 TP2 ... MVC ? JList JLabel JSlider ImageLibrary Contrôleur Vue 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 Changer l'image courante
Modèle ImageLibrar y Jslider JList JLabel

4 Modifier sa taille

5 Modifier sa taille Modèle ImageLibrar y Jslider JList JLabel

6 Ajouter une nouvelle image

7 Ajouter une nouvelle image
Modèle ImageLibrar y Jslider JFileChooser JList JLabel

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

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

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

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

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 Observable
Attach(Observer) Notify()‏ Observer Update()‏

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 JtextField Modele Integer data; JLabel

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

20 Un exemple simple Observable Observer JLabel JTextField Modele
Integer data; Modele Integer data; Modele Integer data; MonJLabel

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

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

23 Un exemple simple ActionListener JTextField Modele Integer data;

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

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

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 JLabel JSlider ImageLibrary Contrôleur Vue Modèle"

Présentations similaires


Annonces Google