• Aucun résultat trouvé

Les Widgets de l’Abstract Window Toolkit en Java

N/A
N/A
Protected

Academic year: 2022

Partager "Les Widgets de l’Abstract Window Toolkit en Java"

Copied!
8
0
0

Texte intégral

(1)

ensiie 2 Septembre 2006 Langages Orientés Objet -David Roussel 1

Les Widgets de l’Abstract Window Toolkit en Java

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)

(2)

2006 Widgets Java -David Roussel 3

Hiérarchie des composants graphiques

Object

Component (abstraite)

MenuComponent (abstraite)

Button Checkbox List Choice

Canvas

TextComponent

TextArea

TextField Container

(abstraite)

Panel

Window

Dialog

Frame MenuBar

MenuItem

Menu

CheckboxMenu Label

Exemples

Applet

2006 Widgets Java -David Roussel 4

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

– placement dans

Container (abstraite)

Panel

Window Component

(abstraite)

(3)

2006 Widgets Java -David Roussel 5

Comment disposer les composants

• Utilisation des LayoutManagers (« Gestionnaires d’agencement »)

• Applicables à tout Container

• FlowLayout

• GridLayout

• BorderLayout

• GridBagLayout

Exemples

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.

(4)

2006 Widgets Java -David Roussel 7

Hiérarchie des événements

AWTEvent

ComponentEvent

InputEvent

MouseEvent

ActionEvent

ContainerEvent

KeyEvent FocusEvent

PaintEvent WindowEvent

ItemEvent

2006 Widgets Java -David Roussel 8

Hiérarchie des Listeners/Adapters

Tous les xxxListener sont des interfaceset les xxxAdapter fournissent une implémentation par défaut de ces interfaces (Delegation Model)

EventListener

ComponentListener

MouseMotionListener

ActionListener ContainerListener

KeyEvent FocusListener

WindowEvent MouseListener

ComponentAdapter ContainerAdapter FocusAdapter

MouseMotionAdapter MouseAdapter

KeytAdapter WindowAdapter

ItemListener

(5)

2006 Widgets Java -David Roussel 9

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

Les Widgets SWING

http://java.sun.com/docs/books/tutorial/uiswing/index.html

(6)

2006 Widgets Java -David Roussel 11

Fenêtres Swing

• JApplet

• JFrame

• JDialog

JApplet

JDialog JFrame Panel Applet

Container

Window

Dialog Frame

AWT Swing Component

JWindow

2006 Widgets Java -David Roussel 12

Conteneurs Swing

Jpanel

JScrollPane

SplitPane

Tabbedpane

Toolbar Container

Component

JComponent

JPanel JScrollPane JSplitPane JTabbedPane JToolbar

(7)

2006 Widgets Java -David Roussel 13

Conteneurs Swing spéciaux

Container Component

JComponent

JInternalFrame JLayeredPane JRootPane

Container getContentPane() Component getGlassPane() JlayeredPane getLayeredPane() JRootPane getRootPane() setContentPane(Container) setGlassPane(Component) setLayeredPane(JLayeredPane)

RootPaneContainer

JApplet JDialog

JFrame JWindow

Contrôles

Container Component

JComponent

JAbstractButton

JButton

JComboBox JList

JMenuItem JMenu

JMenuBar JSlider

JTextComponent JTextField JFormattedTextField JSpinner

JSeparator

Buttons

JToggleButton

JCheckBox JRadioButton

(8)

2006 Widgets Java -David Roussel 15

Contrôles d’information

• JLabel

• JProgressBar

• JToolTip

Container Component

JComponent

JLabel

JProgressBar

JToolTip

2006 Widgets Java -David Roussel 16

Contrôles fortement structurés

JcolorChooser

JFileChooser

JTable

JTextArea

JTree Container

Component

JComponent

JColorChooser JFileChooser JTable

JTextArea JTextComponent

JTree

Références

Documents relatifs

In addition, in MARIA every model-transformation at one level produces models that are all consistently at the same level and therefore, there is no need to weave models together

La procédure à suivre pour utiliser un composant Swing est identique à celle des composants AWT : créer le composant en appelant son constructeur, appeler les méthodes du composant

Remarquez que ce schéma exprime qu'un JMenu est un JMenuItem : lorsqu'un menu est employé en tant qu'item, il a le comportement d'un sous-menu.. 2) Modifier l'exemple précédent

Événements de haut niveau : FocusEvent (une fenêtre qui prend le focus ou la main), WindowEvent (fenêtre fermée, ouverte, icônifiée), ActionEvent (une action

• Ajouter un JTextfield à la fenêtre précédente et un ActionPerformed afin qu'a chaque click sur un bouton la valeur soit affichée.. Les composants et

• Réaliser une classe Appli qui affiche une fenêtre (JFrame) contenant un JButton.}. Disposition des

Toutes les plateformes qui sont compatibles avec la librairie graphique java sont capables de visualiser ces composants standard. D’où le nom de Abstract

En utilisant le modèle MVC, développer une interface graphique pour ajouter, supprimer et afficher un étudiant à la classe GesEtudHash du