Les Interfaces graphiques - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

Les Interfaces graphiques

Description:

N cessit d'un m canisme d'interaction entre l'utilisateur et l'application: ... Vous pouvez passer par des objets de gestion de flux ou de donn es pour ... – PowerPoint PPT presentation

Number of Views:387
Avg rating:3.0/5.0
Slides: 36
Provided by: lamsadeD
Category:

less

Transcript and Presenter's Notes

Title: Les Interfaces graphiques


1
Les Interfaces graphiques
  • Les Swing

2
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.

3
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).

4
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
5
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 ?

6
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)

7
Exemple très simple
8
Exemple un arbre de composant graphique
Les nuds des containeurs
saisir Frame
?????
ajout
Buttonl
nom
post TextField
Label
Les feuilles composants atomiques
9
É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.

10
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
11
Les composants graphique de haut niveau !
  • Les fenêtres graphique (Jframe)
  • Les sous-fenêtre (JInternalFrame)
  • Les containers
  • Les composants de gestion demplacement (Les
    Layout).
  • JPanel

12
Les Fenêtres Graphiques (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.

13
Les constructeurs de JFrame
  • Deux constructeurs
  • public JFrame()
  • public JFrame(String titre)
  • Exemple

Hauteur40
14
Deuxième méthode
  • Parfois, vous avez besoin dassocier des données
    ou des méthodes à des écrans
  • Vous voulez une type de fenêtre personnalisée.
  • Solution ..lhéritage
  • Exemple créer une classe EcranEmp qui prend en
    paramètre un employé dont le titre sera
    initialisé comme suit ceci est lécran de
    lemployé XXXX

15
qq méthodes de la classe Jframe
  • Personnaliser le comportement du bouton de
    fermeture
  • Par défaut rend la fenêtre invisible
  • setDefaultCloseOperation(int )
  • Trois constantes
  • JFrame.DISPOSE_ON_CLOSE
  • JFrame.DO_NOTHING_ON_CLOSE
  • JFrame.HIDE_ON_CLOSE
  • JFrame.EXIT_ON_CLOSE
  • Show() elle dessine la fenêtre et tous les objets
    appartenant a la fenêtre
  • setLocation(x,y) setLocationRelativeTo(Component)
  • Pack() calcule automatiquement la taille
    minimale.
  • setIconImage(new imageIcon(uriImage).getImage())

16
Quatre modèles daffichages
Java Look Feel
GTK Look Feel
MacOS Look Feel
Windows Look Feel
  • La gestion daffichage est gérée par UIManager
  • UIManager intermédiaire entre les composantes
    java et le système daffichage de la machine
  • Trois modes mode programme, commande en ligne
    ou en cours dexécution

17
Comment ajouter des composants dans un JFrame?(1)
  • Chaque JFrame maintient un conteneur dobjets
    graphiques (Container).
  • Le container de JFrame est JRootPane.
  • Le JRootPane maintient une hiérarchie de
    conteneur comme suit
  • JRootPane
  • JLayeredPane
  • JContentPane
  • JGlassPane

18
Comment ajouter des composants dans un JFrame?(2)
  • il ne faut pas ajouter des composants
    directement dans lobjet JFrame passer par sont
    conteneur.
  • getContentPane() Container
  • Par défaut cest le JContentPane.
  • Utilisez la méthode add(Component).
  • Vous pouvez ajouter tout sauf des composants de
    Type JFrame.
  • les objets sont ajoutés sur le plan
  • JLayeredPane en couche

19
Exemple ajouter un label dans une fenêtre
20
Cas particulierAjouter des sous-écrans
  • Vous pouvez ajouter des sous fenêtres à une
    fenêtre.
  • Il faut changer le JContentPane par un
    JDesktopPane ..considérer la fenêtre comme
    lécran de machine
  • Sous Classe de JLayeredPane..
  • Les sous fenêtres sont de type JInternalFrame
  • JInternalFrame se comporte exactement comme un
    JFrame (ajouter des composants ..).

21
JInternalFrame JDesktopPane
  • public JDesktopPane()
  • Il maintient également toutes les méthodes et
    constantes des containers
  • La méthode add est valable
  • Public JInternalFrame(String titre, boolean
    resizable, boolean closable, boolean
    maximazable).
  • Une fois fait Les JInternalFrame sont manipuler
    de la même manière que les JFrame ajout passe
    par le JContentPane etc

22
Exemple
23
Comment placer les objets ?
  • Une fenêtre dispose dun ensemble de containers.
  • Le container des composants est JContentPane
    (getComponentPane).
  • Pas de placement absolu i.e. pas de button1 en
    x3, y4

Chaque container délègue la gestion des
emplacements de composants à une Classe de type
Layout
24
Les Layout les Containeurs
  • Chaque container dispose dun gestionnaire
    demplacement.
  • Les gestionnaires demplacement sont
  • Celles de awt
  • GridLayout
  • BorderLayout
  • Spécifique à swing
  • BoxLayout
  • FlowLayout
  • SpringLayout

25
Comment changer le Layout
  • Chaque containeur maintient une méthode pour
    définir lobjet Layout.
  • Par défaut le JContentPanel maintient un
    FlowLayout.
  • ObjetContainer.setLayout(objetLayout)
  • La méthode add() change de type de paramètre
    selon les objets Layout

26
BorderLayout
  • Constructeur
  • public BorderLayout()
  • Divise le containeur en cinq parties
  • Add( placement ,component)

27
Exemple
28
GridLayout
  • Positionner les objets graphiques dans des
    cellules dune grille i.e matrice.
  • Découper lespace de container en cellule a
    espace égales.
  • Il faut spécifier le nb ligne et colonne dans le
    constructeur (la valeur 0 signifie une gestion
    dynamique).
  • Les objets sont ajoutés ligne par ligne de gauche
    à droite selon lordre dajout dans le programme.

29
Exemple
  • Ecrire un programme qui affiche 6 boutons en
    grille
  • Déclarer une fenêtre
  • Obtenir son JContentPane
  • Changer le gestionnaire demplacement en
    gridLayout
  • Ajouter les 6 bouton.
  • Afficher la fenêtre

30
Résumons nous
  • Une fenêtre est un objet de type JFrame ou une de
    ses sous-classe.
  • Pour ajouter des composants graphique il faut
    passer par le Container
  • getComponentPane() pour obtenir le container
  • add(Component) pour ajouter des objets
    graphiques
  • Pour gérer lemplacement des objets dans le
    container utilisez les objets XXXXLayout.
  • Construire un objet XXXXLayout.
  • Affecter au container ContainerOb.setLayout(layout
    Ob).

31
Un autre container JPanel
  • Vous pouvez utiliser vos propre container, mais.
  • Il faut les ajouter au container de la fenêtre
  • Le JPanel vous permet de gérer lespace dans une
    fenêtre.
  • Il peuvent définir des formats de placement
    différent.
  • Vous ajoutez vos objets directement dans le JPane.

32
qq méthodes de JPanel
  • Constructeur
  • new JPanel()
  • New JPanel(Layout)
  • La méthode setLayout(Layout)
  • La méthode add(Component)
  • Les JPanel sont des composants et peuvent
    simbriqués entre elles.
  • Les JPanel napparaissent pas à lecran leurs
    rôle se limite à une découpage dune espace
    dffichage.
  • Pour le rendre visible il faut ajouter un objet
    de type Border setBorder(BorderFactory.xxxx)

33
Exemple
34
Excercice1
  • Écrivez une méthode main() qui affiche la fenêtre
    suivante

35
Solution
  • Créer un objet Jframe
  • Mettre à jours le gestionnaire de placement
    (GridLayout(2,1)).
  • Mettre ajour la couleur de fond du panel de la
    fenêtre
  • Créer deux JPanel avec la bordure
  • Mettre à jours les couleurs de fonds
  • Ajouter les JPanel dans la fenêtre
  • Enfin afficher la fenêtre
Write a Comment
User Comments (0)
About PowerShow.com