Plan du cours - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Plan du cours

Description:

Les interfaces graphiques et la programmation v nementielle. ... Adress .... ListPersonnels. Employ [] list. Add(Employ ) Remove(Employ ) Public static void ... – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 28
Provided by: hafazar
Category:
Tags: adress | cours | plan

less

Transcript and Presenter's Notes

Title: Plan du cours


1
Plan du cours
  • La sérialisation
  • comment stocker et restaurer les Objets?
  • Les interfaces graphiques et la programmation
    évènementielle.
  • Comment concevoir les écrans?
  • Comment programmer les évènements?
  • Comment développer une application en java?
  • Les Threads ou les processus légers
  • Quest ce que la programmation parallèle.
  • Comment programmer les processus en java
  • Les Applets java sur le Web.
  • Comment utiliser java pour programmer vos pages.

2
Exemple Entrée/Sortie
Sérialisation
3
problématique
  • La portée de chaque variable est limitée au bloc
    de déclaration.
  • A la fin de lapplication, les variables (objets)
    sont détruites par le GarbageCollector (perte de
    données).
  • Certaines variables ou objets (pour des raisons
    applicatives) doivent persister à la fin du
    programme.

4
Exemple gestion des employés
  • On veut écrire un programme de saisie demployés.
  • Solution

5
Solution
  • Trouver le moyen de persister les données.
  • Solution utiliser un fichier pour stocker les
    données
  • Définir un modèle de stockage des Objets
  • Définir le moyen de restauration des Objets
  • Exemple
  • public class MyClass
  • public void saveYourself(Writer o)
  • throws IOException
  • public static MyClass loadYourself(Reader r)
  • throws IOException

6
Limite de cette solution
  • Le stockage de lobjet passe par le stockage de
    ses données membres.
  • Chaque Objet membre doit appartenir à une classe
    qui implémente le même mécanisme.
  • Impossible de passer par les interfaces (la
    méthode de restauration doit être static).
  • La solution devient très complexe pour gérer les
    références

7
Problème de reférence
Emp1. saveYourself(Writer o) Emp2.
saveYourself(Writer o) Emp2. saveYourself(Writer
o)
employé4
Emp1Employé.loadYourself(Reader
r) Emp2Employé.loadYourself(Reader
r) Emp3Employé.loadYourself(Reader r)
8
La sérialisation
  • Le mécanisme offert par Java pour persister les
    données.
  • Un format uniforme pour formater les objets sous
    forme dune séquence doctets.
  • Il gère le problème de référence.
  • Offre dautres mécanismes de personnalisation

9
Les Conditions nécessaires
  • Le type de lobjet (Class) doit être déclaré
    public
  • La classe doit disposer dun constructeur à zéro
    paramètres
  • La classe doit implémenter linterface
    Serialisable
  • Toutes les données membre doivent être
     sérialisable  type primitive ou des classes
    qui implémentent Serialisable .

Les données membres static et static final ne
sont pas sauvegardées
10
Implémentation de linterface Serializable
  • Implémenter une interface induit à
    limplémentation de ses méthodes, Mais
  • Serializable ne définit aucune méthode.
  • Question1 A quoi sert une interface sans
    méthodes?
  • Réponse Serialisable est une interface drapeau
    qui informe lenvironnement Java pour traiter la
    Classe de manière particulière.
  • Question2 pourquoi toutes les classes
    nimplémentent pas Serializable par défaut ?
  • Réponse problème de sécurité  (voire la suite).

11
Sérialiser un Object
  • La Classe ObjectOutputStream.
  • Elle prend en paramètre un OutputStream
  • Utilise la méthode writeObject(Object)

public class employé implements Serializable
public class Sauvgarder public static
void main() Employé emp1new Employé() Object
OutputStream outnew ObjectOutputStream(
new FileOutputStream(fileName)) out.writ
eObject(emp1) Out.close
12
Restaurer un objet ( de-sérialiser )
ObjectInputStream in new ObjectInputStream(
new FileInputStream(fileName)) Employé
emp1((Employé)in.readObject()
  • Faut savoir à lavance le type de lobjet.
  • Utilisé la classe ObjectInputStream.
  • Prend un object InputStream.
  • Utilise la méthode readObject().
  • Type de retour Object.
  • Il faut savoir le type (pour le transtypage).
  • Vous pouvez utiliser la méthode. getClass() pour
    savoir le type effectif.

13
Exemple problème de référence
emp2
2
emp3
ObjectInputStream innew ObjectOutputStream(
new FileInputStream(fileName)) emp1
((Employé)in.readObject()) emp2
((Employé)in.readObject())// ne crée pas dobjet
emp3 ((Employé)in.readObject())
14
Aspects avancés
  • Sécurité
  • Une objet sérialisé est un fichier UTF(texte).
  • Un objet sérialisé peut être lu et modifié.
  • le mot clé transient
  • Certaines données (non static) ne doivent pas
    être stockées (les valeurs calculées, mot de
    passe)
  • Le mot clé transient informe java de ne pas
    sérialiser la variable en question.

public class Employé implements Serializable
private transient double salaire
// le salaire ne sera pas sérialisé
15
En résumé
  • Désormais, il est possible de sauvegarder les
    variables objets.
  • Implémenter linterface Serialisable
  • Utilisez ObjectInputStream ObjectOutputStream
    pour stocker et restaurer les objets.
  • Les objets restaurés sont de type Object
    (transtypage).
  • Faites attention lors de lhéritage, les classes
    mères doivent avoir des contructeurs à zéro
    paramètres

16
Les Interfaces graphiques
  • Les Swing

17
Les interfaces graphiques Introduction
  • Une application est une boîte noire.
  • Prend des entrées et produit des sorties.
  • Les utilisateurs ne sont pas des programmeurs.
  • Nécessité dun mécanisme dinteraction entre
    lutilisateur et lapplication
  • Echanger les données.
  • Echange de contrôle.

18
Solution la plus basique les Intput/output
Stream
  • Vous pouvez passer par des objets de gestion de
    flux ou de données pour interagir avec
    lutilisateur.
  • Saisir les données dans un fichier ou à partir du
    clavier (System.in, InputStream).
  • affichage des résultats sur la console ou dans
    des fichiers (System.out et OutputStream).

19
Inconvénients
  • Très lourde (beaucoup de code pour peut de
    chose).
  • Peu adaptée pour les interactions de type
    contrôle.
  • Pas du tout intuitive il faut connaître pour
    pouvoir lutiliser
  • certains types de données ne peuvent être gérés
    en tant que flux.

Solution Les interfaces graphiques
20
Faire une interface graphique...
  • Comment construire un écran graphique ?
  • Comment gérer les événements ?
  • Comment maintenir la cohérence entre les objets
    applicatifs / objets graphiques ?

21
Définition des écrans !
  • Une application plein d écrans graphiques
  • Un écran graphique 1 arbre de composants
    graphiques
  • La racine La fenêtre
  • Les feuilles des composants atomiques (button,
    List, TextField)
  • Les nuds des conteneurs (des zones pour mettre
    des composants atomiques)

22
Exemple très simple
23
Exemple un arbre de composant graphique
Les nuds des containeurs
saisir Frame
?????
ajout
Buttonl
nom
post TextField
Label
Les feuilles composants atomiques
24
Étape1 Comment construire des écrans Graphiques ?
  • Java offre une  pléthora  de composantes
    graphiques.
  • Deux packages java.awt. javax.swing.
  • Le package swing est une extension de awt
  • On peut les classer selon trois catégories
  • Les composantes écrans
  • Les composantes de gestion demplacement les
    containers
  • Les composantes graphiques atomiques.
  • Les composantes de type menus.

25
Une vue partielle sur le modèle de classe du
package swing
Une classe abstraite!
Les composants atomiques
JComponent
(from awt)
component
Les composants composites !
Container
JButton
TextComponent
(from awt)
(from awt)
(from awt)
JTextField
Panel
JWindow
(from awt)
JList
Pas de nouvelles fenêtres
JFrame
26
La classe JFrame
  • La classe qui permet de créer des fenêtres
  • Cest lobjet racine
  • Sous classe de la classe Frame de awt.
  • Elle maintient un objet de gestion de composants.

Frame (awt)
 Interface  WindowConstants
JFrame
 Interface  RootPaneContainer
JRootPane
27
Les constructeurs de JFrame
  • Deux constructeurs
  • public JFrame()
  • public JFrame(String titre)
  • Exemple

public static void main(String args)
//mode daffichage par défaut (mode
java) JFrame.setDefaultLookAndFeelDecorated(true)
Jframe e new JFrame( Ecran de saisie
Employé") e.setSize(300,40)//spécification de
la taille e. show() //affiche la composante de
type écran en mode java
Largeur300
Hauteur40
Write a Comment
User Comments (0)
About PowerShow.com