Les Widgets de l`Abstract Window Toolkit en Java Les Packages de l

publicité
Les Widgets de l’Abstract Window Toolkit
en Java
Langages Orientés Objet - David Roussel
ensiie 2 Septembre 2006
1
Les Packages de l ’AWT
• Java.awt : contient les classes pour créer des interfaces
graphiques, dessiner et gérer des images.
– color : espace des couleurs
– datatransfer : transfert de données dans et entre les applis
(clipboard, MIME, …)
– dnd : Drag aNd Drop
– event : Gestion des événements générés par les composants AWT
– font : Dessin de fontes (texte mis en forme)
– geom : Formes 2D
– im : Input Methods, entrées de texte évolué (Kanji, Parole, Ecriture
manuscrite)
– image : Créer et modifier des images, (consommateurs,
producteurs)
– print : API pour imprimer les documents.
2006
Widgets Java - David Roussel
2
Hiérarchie des composants graphiques
Object
Button
Checkbox
List
Choice
Component
(abstraite)
Canvas
Label
TextArea
TextComponent
TextField
Applet
Container
(abstraite)
Panel
Dialog
Window
Frame
MenuBar
MenuComponent
(abstraite)
Menu
MenuItem
CheckboxMenu
2006
Exemples
Widgets Java - David Roussel
3
Composition des Widgets
• Component : les Components sont les widgets de base qui
forme l’interface utilisateur d ’un programme.
• Container : les Containers contiennent un ou plusieurs
Component disposés en utilisant des LayoutManagers pour
gérer leur dispositions.
• Arbre d’inclusion des Widgets :
– héritage
Component
(abstraite)
Panel
– placement dans
Container
(abstraite)
Window
2006
Widgets Java - David Roussel
4
Comment disposer les composants
• Utilisation des LayoutManagers (« Gestionnaires
d’agencement »)
• Applicables à tout Container
• FlowLayout
• GridLayout
• BorderLayout
Exemples
• GridBagLayout
2006
Widgets Java - David Roussel
5
Evénements
• Un événement est émis par un composant (un widget)
– Evènement de bas niveau : clic souris (MouseEvent), saisie clavier
(KeyEvent), gestion du focus (FocusEvent), gestion des
mouvements de la souris (MouseMotionEvent)
– Evènement de haut niveau : clic sur un bouton ou un item de liste
(ActionEvent)
• Il faut associer au composant à l’origine de l’événement un
contrôleur adéquat :
– en utilisant la méthode addxxxListener( xxxListener ) du
composant
– Tous les xxxListener sont des interfaces, il suffit donc de définir
des classes qui implémentent ces interfaces pour gérer les actions à
effectuer en réponse à ces événements.
2006
Widgets Java - David Roussel
6
Hiérarchie des événements
AWTEvent
ContainerEvent
ComponentEvent
FocusEvent
InputEvent
MouseEvent
KeyEvent
PaintEvent
WindowEvent
ActionEvent
ItemEvent
2006
Widgets Java - David Roussel
7
Hiérarchie des Listeners/Adapters
Tous les xxxListener sont des interfaces et les xxxAdapter fournissent une
implémentation par défaut de ces interfaces (Delegation Model)
EventListener
ComponentListener
ComponentAdapter
ContainerListener
ContainerAdapter
FocusListener
FocusAdapter
MouseMotionListener
MouseMotionAdapter
MouseListener
MouseAdapter
KeyEvent
KeytAdapter
WindowEvent
WindowAdapter
ActionListener
2006
ItemListener
Widgets Java - David Roussel
8
Dessiner avec Java AWT
• Les opérations de dessin s’effectuent dans un
« Component » la plupart du temps dans un « Canvas » :
avec la méthode « paint(Graphics g) ».
• Les opérations de dessin sont réalisées par la classe
« Graphics »
– Pas de constructeurs publics (instance fournie par le système)
– Obtention d ’une instance de Graphics par la méthode
« getGraphics » d’un Component (souvent un Canvas).
2006
Widgets Java - David Roussel
9
Les Widgets SWING
http://java.sun.com/docs/books/tutorial/uiswing/index.html
ensiie 2 Septembre 2006
Langages Orientés Objet - David Roussel
10
Fenêtres Swing
Component
Container
• JApplet
• JFrame
• JDialog
AWT
Swing
Panel
Applet
JApplet
JWindow
Frame
JFrame
Dialog
JDialog
Window
Widgets Java - David Roussel
2006
11
Conteneurs Swing
•
•
•
•
•
Component
Container
Jpanel
JScrollPane
SplitPane
Tabbedpane
Toolbar
JPanel
JScrollPane
JComponent
JSplitPane
JTabbedPane
JToolbar
2006
Widgets Java - David Roussel
12
Conteneurs Swing spéciaux
Component
JLayeredPane
Container
JRootPane
JComponent
JInternalFrame
RootPaneContainer
Container getContentPane()
Component getGlassPane()
JlayeredPane getLayeredPane()
JRootPane getRootPane()
setContentPane(Container)
setGlassPane(Component)
setLayeredPane(JLayeredPane)
JApplet
JDialog
JFrame
JWindow
Widgets Java - David Roussel
2006
Contrôles
Component
13
JCheckBox
JToggleButton
JRadioButton
JButton
JAbstractButton
Container
JMenuItem
JMenu
Buttons
JSeparator
JComponent
JComboBox
JList
JMenuBar
JSlider
JSpinner
JTextComponent
2006
JTextField
Widgets Java - David Roussel
JFormattedTextField
14
Contrôles d’information
• JLabel
• JProgressBar
• JToolTip
Component
Container
JLabel
JComponent
JProgressBar
JToolTip
Widgets Java - David Roussel
2006
15
Contrôles fortement structurés
•
•
•
•
•
Component
Container
JcolorChooser
JFileChooser
JTable
JTextArea
JTree
JColorChooser
JFileChooser
JComponent
JTable
JTextComponent
JTextArea
JTree
2006
Widgets Java - David Roussel
16
Téléchargement