Les composants SWING

publicité
Les composants SWING
Java
page : 1
Les limites de l'AWT
Abstract Window Toolkit
indépendance de l'IHM
complète au niveau de la programmation
Java
incomplète au niveau de l'apparence et du
comportement (look-and-feel) de l'interface
les composants de l'AWT (boutons, menus, libellés, …)
sont implantés par des objets de l'environnement
d'exécution
page : 2
Objectifs de Swing (1)
Offrir des composants d'IHM totalement
indépendants de la plate-forme d'exécution
(car eux-mêmes écrits en Java)
Ces composants dits "composants légers"
ont la même apparence et le même comportement sur
toutes les plates-formes (Unix, Mac, PC)
Java
page : 3
Objectifs de Swing (2)
il est possible de changer dynamiquement
l'apparence et le comportement de tous
les composants d'une interface par la
technique dite du "plugable look and feel"
(PLAF)
écriture en Java :
toute amélioration ou adjonction de nouveaux
composants sera automatiquement disponible sur
toutes les plate-formes
Java
page : 4
Présentation de Swing
tous les composants Swing ne sont pas légers car
il faut communiquer avec l'interface de fenêtrage
de la plate-forme sur laquelle s'exécute
l'application
4 composants LOURDS : les conteneurs
JFrame
JDialog
JWindow
JApplet
Java
page : 5
Conteneurs de base (1)
différence principale de la programmation par
rapport à l'AWT:
les conteneurs de base contiennent plusieurs surfaces
d'affichage (panes)
Surfaces d'affichage
contentPane
contient tous les composants habituels de l'interface
(boutons, champs de texte, …)
glassPane
surface "transparente" au-dessus des autres surfaces
permettant d'afficher temporairement des informations
(applique le L&F)
Java
page : 6
Conteneurs de base (2)
menuBar
surface réservée à une barre de menu qui rend place
en haut de la totale visible
layerPane
ensembles de surfaces superposées, qui contient au
départ la contentPane et la menuBar mais à laquelle
on peut ajouter d'autres surfaces (ex: ajouter des
menus pop-up)
Java
page : 7
conteneurs de base (3)
organisations des surfaces d'affichage
GlassPane
JmenuBar
ContentPane
(autres surfaces : JLayredPane, JrootPane, JFrame)
Java
page : 8
Conteneurs de base (4)
la présence des différentes surfaces ne permet
plus l'ajout simple et direct de composants à un
conteneur de base
exemple (ajout d'une étiquette dans un frame)
awt : f.add(e)
swing:
f.getContentPane().add(e)
Java
page : 9
Les JComponents
Tous les composants Swing sont des
descendants de JComponent
JComponent est un descendant de
Container tout composant Swing peut
contenir d'autres composants
La classe Jcomponent possédent :
105 méthodes propres
39 méthodes héritées de java.awt.Container
106 méthodes héritées de java.awt.Component
Java
page : 10
Classification des méthodes de
JComponent
Look-and-feel
Associer au composant un objet responsable de son
apparence et de son comportement
Dessin
Dessiner et redessiner le composant, sa bordure et ses
sous-composants
Focus
Déterminer quand le composant devient actif ou
inactif par rapport aux entrées du clavier
Taille et position
Définir et contrôler la taille et le positionnement du
composant (taille min., max., préférées, … )
Java
page : 11
Classification des méthodes de
JComponent
Clavier
Déterminer les réactions aux frappes claviers, les
raccourcis clavier,etc …)
Aide immédiate
Fixer le texte d'aide à afficher quand la souris passe
sur le composant
Accessibilité:
Déterminer la manière dont le composant doit
apparaître à des personnes souffrants des handicaps
(affichage de très grosse taille, remplacement de
l'image par le son, le braille, etc…)
Java
page : 12
Composants Swing et AWT (1)
AWT
Swing
Commentaires
Button
AbstractButton
JButton
On peut associer une icône plutôt qu'un
texte à un JButton
Pas d'équivalent
Canvas
Checkbox
JToggleButton
JCheckBox
JRadioButton
On fait la distinction entre les JCheckBox
destinés aux sélections multiples et les
JRadioButton pour les sélections uniques
dans un groupe
CheckboxGroup
ButtonGroup
Un groupe de tout ce qui est bouton
CheckboxMenuItem
JCheckboxMenuItem
Un article de menu qui peut porter une
marque de sélection
Choice
JPopupMenu
JComboBox
Le JComboBox permet de choisir dans
une liste mais aussi de saisir un texte dans
un champ
Component
JComponent
Un Jcomponent comprend un look-andfeel modifiable, das aides immédiates
Un Jcomponent est un conteneur, tout
composant Swing peut en contenir un
autre
Java
page : 13
Composants Swing et AWT (2)
AWT
Swing
Commentaires
Dialog
JDialog
JDialog est un conteneur de base qui contient
un RootPane
FileDialog
JFileChooser
Frame
JFrame
Ajout de nombreuses méthodes de
configuration et de contrôle du dialogue de
choix d'un fichier
Extension de Frame qui permet la gestion de
surfaces de dessine et d'interactions
superposées (glassPane, LayeredPane,
rootPane) et des barres de menus
Label
JLabel
List
JList
Menu
JMenu
Un JMenu est essentiellement un bouton associé
à un JPopUpMenu
MenuBar
JMenuBar
une barre formée de JMenu
Java
peut également contenir une image
une JList n'a pas de barre de défilement, il
faut l'inclure dans le viewPort d'un
JScrollPane
page : 14
Composants Swing et AWT (3)
AWT
Swing
Commentaires
MenuItem
JMenuItem
Un JMenuItem est en fait un bouton placé dans
une liste. Il peut contenir un texte, une icône ou les
deux
Les équivalents clavier sont gérés globalement
pour tous les composants Swing
MenuShortcut
Panel
JPanel
le composant qui sert à grouper d'autres
composants
PopupMenu
JPopupMenu
Scrollbar
JScrollBar
TextArea
JTextArea
dans AWT le menu pop-up est une sorte de menu,
dans Swing c'est le menu qui est composé d'un
bouton et d'un menu pop-up
en général associé à un JViewport qui montre
une partie d'un texte ou d'une image
Le JTextArea ne posséde pas de barre de
défilement mais il implémente l'interface
Scrollable, ce qui permet de le placer dans un
JScrollPane
Java
page : 15
Composants Swing et AWT (4)
AWT
Swing
TextComponent
JTextComponent Le contenu (modèle) d'un JTextComponent
n'est pas un simple String mais un Document
TextField
JTextField
La gestion des champs de type mot de passe
JPasswordField doit se faire dans un JPasswordField
Window
JWindow
Java
Commentaires
Une fenêtre simple, sans titre ni bouton de
manipulation
page : 16
Nouveaux composants introduits
dans Swing
Classe
Description
Box
un conteneur qui utilise la mise en page Box
JColorChooser
un panneau pour sélectionner une couleur
JDesktopPane
un conteneur pour créer des bureaux virtuels contenant
plusieurs fenêtres (InternalFrame)
JEditorPane
composant texte qui permet d'éditer différents types de
contenus : texte simple, HTML, RTF, etc.
JInternalFrame
comme un Jframe mais léger et fait pour vivre à l'intérieur
d'un DesktopPane
JLayeredPane
panneaux superposés
JOptionPane
panneau d'information ou d'erreur avec bouton (OK,
Cancel, etc. )
JProgressBar
un composant montrant l'évolution d'un processus sous forme
d'une barre qui grandit
JRootPane
le composant de départ dans une hiérarchie de
composants. Contient d'autres panneaux : contenu,
transparent, barre de défilement, panneaux superposés
Java
page : 17
Java
page : 18
Téléchargement