La plupard des Classes de l'AWT hérite de la classe
abstraite Component.
méthodes :
paint(Graphics g) est la méthode appelée à
chaque fois que le contenu du composant doit être redessiné
(la 1ére fois, quand il fut masqué puis démasqué,
...); elle est à re-définir en spécifiant
tout ce qui doit être dessiné.
repaint() provoque un appel à paint(), donc redessine
le contenu du composant.
getGraphics() renvoie le contexte graphique de type Graphics
du composant : c'est à dire la trousse pour dessiner actuelle
setVisible(boolean visible) affiche ou masque le composant
setEnabled(boolean actif) active ou non le composant, c'est à
dire le rend sensible aux événements.
getSize() donne la dimension actuelle du composant, retourne
le type Dimension qui est utilisable ainsi : getSize().height
et getSize().width
getPreferedSize() donne la taille "idéale" du
composant, retourne le type Dimension
setSize(Dimension d) redimensionne le composant à la dimension
indiquée
setSize(int largeur, int hauteur) redimensionne le composant
move(int coordX, int coordY) déplace le composant au point
indiqué (coin haut et gauche)
setForeground(Color couleur) définit la couleur d'avant-plan
(de dessin) du composant
setBackground(Color couleur) définit la couleur de fond
setCursor(Cursor curseur) définit le curseur
classe Container :
classe abstraite pour les composants qui contiennent et gérent
d'autres composants
Chaque container posséde un gestionnaire de placement
par défaut, layout ou "geometry manager", qui
range les composants graphiques fils dans le container.
Il est possible de ne pas les utiliser en placant chaque composant
à l'aide de la méthode setLocation(int coordX,
coordY)
méthodes :
setLayout(LayoutManager manager) spécifie le geometry
manager qui rangera (arrangera) les composants contenus.
add(composant) ajoute un composant dans le container.
classe Frame :
"cadre" : fenêtre top-level conteneur d'une
application avec barre de titre et des boutons de fermeture,
plein écran, iconification.
le layout par défaut est BorderLayout
contructeurs :
Frame() crée une fenêtre sans titre
Frame(String titre) crée une fenêtre avec titre
méthodes :
setTitle(String titre) spécifie le titre
setMenuBar(MenuBar) applique une barre de menu en haut du cadre
setResizable(boolean) détermine si le cadre peut être
redimensionné par l'utilisateur
les événements générés
par le composant Frame sont :
"panneau" : composant conteneur d'autres composants
la classe Applet hérite de Panel
le layout par défaut est FlowLayout
contructeurs :
Panel() crée un Panel
Panel(LayoutManager manager) crée un Panel avec le geometry
manager spécifié
les Layout :
5 gestionnaires de placement, geometry manager, qui rangent
des composants graphiques dans un container.
Il est possible de ne pas les utiliser en placant chaque composant
dans un Panel à l'aide de la méthode setLocation(int
coordX, coordY)
FlowLayout :
range de gauche à droite et de haut en bas.
FlowLayout() range les composants en les centrant avec un
"vspacing et hspacing" (espace vertival, respectivement
horizontal) de 5 pixels.
FlowLayout(int aligne) range les composants en les alignant selon
aligne : FlowLayout.LEFT, FlowLayout.CENTER, FlowLayout.RIGHT
avec un vspacing et hspacing de 5 pixels.
FlowLayout(int aligne, int vspacing, int hspacing) range selon
l'alignement et le vspacing et le hspacing spécifiés.
GridLayout :
range dans une grille/matrice de gauche à droite et
de haut en bas
GridLayout(int ligne, int colonne) range les composants dans
la grille de rangement
GridLayout(int ligne, int colonne, int hspacing, int vspacing)
idem avec le vspacing et le hspacing spécifiés.
BorderLayout :
divise un composant container en 5 zones: North, East, South,
West, Center
BorderLayout() crée 5 zones
BorderLayout(int hspacing, int vspacing) idem avec un espacement
spécifié.
la méthode add est par exemple add("North",
composant)
CardLayout : range comme une pile de cartes,
GridBagLayout : range dans une grille de cases
de tailles variées.
classe Label :
étiquette : affiche un petit texte/message
constructeurs :
Label() crée une étiquette sans texte
Label(String texte) crée une étiquette avec texte
aligné à gauche
Label(String texte, int aligne) crée une étiquette
avec texte aligné selon aligne : Label.LEFT, Label.CENTER,
Label.RIGHT
méthodes :
setText(String texte) spécifie le texte
getText() retourne le texte de l'étiquette
setAlignment(int aligne) spécifie l'alignement
getAlignment()
classe Button :
bouton : permet le déclanchement d'action
constructeurs :
Button() crée un bouton sans texte
Button(String texte) crée un bouton avec texte centré
méthodes :
setLabel(String texte) spécifie le texte du bouton
getLabel() retourne le texte du bouton
setActionCommand(String texte) spécifie le nom de l'action
du bouton
getActionCommand() retourne le nom de l'action du bouton
addActionListener(ActionListener écouteur) met un "écouteur"
d'événement sur le bouton
removeActionListener(ActionListener écouteur) supprime
un "écouteur" d'événement sur
le bouton
Button envoie un événement Action quand on
clique dessus
interface ActionListener
:
les événements sont des actions ou des effets
indirects d'action de l'utilisateur du GUI (Interface Graphique
Utilisateur) : clic de souris, frappe de touche, fenêtre
masquée par une autre, ...qu'il faut gérer : en
mettant en place un "écouteur" de l'événement
souhaité sur le composant graphique considéré,
puis définir le comportement (les instructions à
éxécuter, le handler d'événement)
lorsque l'événement surviendra.
ActionListener est une interface pour écouter et traiter
les ActionEvents
Par exemple, bouton.addActionListener(composant) met un écouteur
(d'ActionEvent) sur le bouton, le "handler" sera assurée
au niveau du composant désigné qui implémente
l'ActionListener; pour un bouton,l'ActionEvent est provoquée
par un clic de souris (bouton enfoncé puis relaché).
la classe qui implémente l'interface ActionListener
doit définir la méthode :
public void actionPerformed(ActionEvent e) { ... qui est le "handler"
getActionCommand() est une méthode de ActionEvent récupère
le nom de la commande d'action associé au composant par
exemple un bouton (par défaut son label).
classe TextField :
champ texte pour saisir et/ou afficher du texte modifiable
constructeurs :
TextField() crée un champ sans texte
TextField(int nombre) crée un champ sans texte d'une largeur
de nombre caractères
TextField(String texte) crée un champ avec texte
TextField(String texte, int nombre) crée un champ avec
texte et d'une largeur de nombre caractères
méthodes :
setText(String texte) spécifie le texte du champ
getText() retourne le texte contenu dans le champ
getColumns() retourne la largeur du champ en nombre caractères
setColumns() définit la largeur du champ en nombre caractères
setEditable(boolean modifiable) spécifie si le texte du
champ est modifiable
isEditable() retourne un boolean qui indique si le texte du champ
est modifiable
setEchoChar(char masque) spécifie le caractère
de masquage de la saisie (pour les passwords)
echoCharIsSet() retourne un boolean qui indique si le masquage
est en vigueur
getEchoChar() retourne le caractère de masquage
addActionListener(ActionListener écouteur) met un "écouteur"
d'événement sur le composant
removeActionListener(ActionListener écouteur) supprime
un "écouteur" d'événement
classe TextAera :
éditeur de texte pour saisir et/ou afficher du texte
modifiable sur plusieures lignes, muni de barres de défilement
et de comportements prédéfinies : sélection
de texte à la souris, raccourci clavier copier/coller,
...,
constructeurs :
TextAera() crée un éditeur sans texte
TextAera(int ligne, int largeur) crée un éditeur
sans texte d'une largeur en nombre de caractères et d'un
nombre de lignes spécifiés.
TextAera(String texte) crée un éditeur avec texte
TextAera(String texte, int ligne, int largeur) crée un
éditeur avec texte et d'une largeur et d'un nombre de
lignes spécifiés.
méthodes :
insertText(String texte, int position) insère le texte
à la position indiquée
replaceText(String texte, int départ, int fin) remplace
les caractères entre les positions indiquées par
le texte spécifié
et les mêmes méthodes que TextField
classe Canvas :
canevas : c'est une planche à dessin ou à afficher
les images
doit être héritée pour bénéficier
de la méthode :
méthodes :
paint(Graphics contexteGraphique) : il faut re-dessiner tout
ou partie après que le recouvrement du Canvas par une
autre fenêtre.
update(Graphics contexteGraphique) : repeint le fond avec la
couleur de background puis re-dessine tout
repaint(Graphics contexteGraphique) : réclame update dès
que possible.
classe Graphics :
contexte graphique : "un crayon, un pinceau, un stylo"
et leurs caractéristiques : couleur, fonte, ... qui permettent
de dessiner, écrire, ...
constructeur :
Graphics()
méthodes :
create() crée un nouveau contexte graphique à partir
des caratéristiques de this
dispose() libère le contexte graphique
setColor(Color couleur) change la couleur de dessin
getColor() retourne la couleur de dessin en cours
setFont(Color couleur) change la fonte
getFont() retourne la fonte en cours
clipRect( int coordX, int coordY, int largeur, int hauteur) définit
la zone de dessin au rectangle spécifié
clearRect( int coordX, int coordY, int largeur, int hauteur)
efface le rectangle spécifié en repeignant avec
la couleur de fond
copyArea(int coordX, int coordY, int largeur, int hauteur, int
destX, int destY) copy la zone spécifiée au point
destination désigné.
drawString(Strong chaine, int coordX, int coordY) dessine la
chaine à partir de la position indiquée
drawLine(int x1, int y1, int x2, int y2) dessine une ligne entre
les 2 points précisés
drawOval( int coordX, int coordY, int largeur, int hauteur) dessine
le rectangle de coin haut-gauche spécifié
drawRect( int coordX, int coordY, int largeur, int hauteur) dessine
un ovale à l'intérieur du rectangle spécifié
fillRect( int coordX, int coordY, int largeur, int hauteur) remplit
un rectangle spécifié de la couleur de dessin
boolean drawImage(Image image, int coordX, int coordY, [int hauteur,
int largeur,] ImageObserver observer) dessine l'image spécifiée;
l'observer peut suivre le chargement de l'image sinon this; drawImage
renvoie false si le chargement se s'est pas fait totalement.
interface MouseListener :
MouseListener défint l' "écouteur"
d'événement Souris : press, release, click, enter,
exit.
addMouseListener installe un écouteur MouseListener sur
un composant
les méthodes à (toutes) définir sont
:
public void mousePressed(MouseEvent e) définit le
traitement quand survient l'événement qui indique
qu'un bouton de la souris est pressé dans l'aire du composant.
public void mouseReleased(MouseEvent e) ...événement
bouton de souris "relaché" dans l'aire du composant.
public void mouseClicked(MouseEvent e) ...événement
bouton de souris "pressé-relaché"
public void mouseEntered(MouseEvent e) ... événement
souris "entre" dans l'aire du composant.
public void mouseExited(MouseEvent e) ... événement
souris "sort" de l'aire du composant.
mouseEvent.getX() donne la coordonnée x de la souris
au moment de l'événement.
mouseEvent.getY() donne la coordonnée y.
interface MouseMotionListener :
MouseMotionListener définit l' "écouteur"
d'événement mouvement de Souris : drag, move.
addMouseMotionListener installe un écouteur MouseMotionListener
sur un composant
les méthodes à (toutes) définir sont
:
public void mouseMoved(MouseEvent e) définit le traitement
quand survient l'événement qui indique que la souris
bouge dans l'aire du composant sans bouton enfoncé.
public void mouseDragged(MouseEvent e) définit le
traitement quand survient l'événement qui indique
que la souris bouge dans l'aire du composant avec au moins un
bouton enfoncé. La souris peut sortir de l'aire du composant
tant qu'un bouton est enfoncé.
mouseEvent.getX() donne la coordonnée x de la souris
au moment de l'événement.
mouseEvent.getY() donne la coordonnée y.
interface KeyListener :
KeyListener définit l' "écouteur"
d'événement Clavier : press, release, type.
addKeyListener installe un écouteur KeyListener sur un
composant
les méthodes à (toutes) définir sont
:
public void keyPressed(KeyEvent e) définit le traitement
quand survient l'événement qui indique qu'une touche
du clavier est enfoncé si le composant a le focus Clavier.
public void keyReleased(KeyEvent e) ...événement
touche du clavier "relachée".
public void keyTyped(KeyEvent e) ...événement
touche caractère (et non une touche flèche, ...)
tapé
keyEvent.getKeyCode() donne le code de la touche frappée
au moment de l'événement; par exemple KeyEvent.VK_3
pour le "3", KeyEvent.VK_A pour le "a" et
le "A" , KeyEvent.VK_DOWN pour la flèche bas,
...
keyEvent.getKeyChar() donne le caractère de la touche
frappée au moment de l'événement.
classe Dialog :
"boîte de dialogue" : fenêtre conteneur
de composants pour dialoguer avec l'utilisateur ; en particulier,
elle peut être modale : non-recouvrable par une autre fenêtre
tant que la fenêtre dialogue n'est pas fermée.
contructeurs :
Dialog(Frame cadre, boolean modale) crée une boîte
de dialogue sans titre associée au cadre et modale ou
non.
Dialog(Frame cadre, String titre, boolean modale) crée
une boîte de dialogue avec titre associée au cadre
et modale ou non.
méthodes :
Pour beaucoup les mêmes que Frame, car Dialog et Frame
héritent de Window.
setModal(boolean modale) détermine si la boîte de
dialogue est modale ou non.
classe WindowAdapter :
la classe WindowAdapter est une classe "écouteur"
pour les fenêtres Frame, Dialog, ...
les Classes Adapters évite l'implémentation
de toutes les méthodes abstraites d'une interface Listener.
L'interface WindowListener déclare 8 méthodes
abstraites qui sont, dans la classe WindowAdapter définies
avec le corps {};
méthodes :
windowActivated(WindowEvent e) quand la fenêtre devient
active
windowClosed(WindowEvent e) quand la fenêtre est en
train d'être fermée (par exemple : clic sur le boton
de fermeture)
windowClosed(WindowEvent e) quand la fenêtre est fermée
windowIconified(WindowEvent e) quand la fenêtre est
"iconisée"
windowDeiconified(WindowEvent e) quand la fenêtre est
"dé-iconisée"
En Pratique, il faut créer une sous-classe Ecouteur
de WindowAdapter et re-définir les méthodes souhaitées
: par exemple, public void windowClosing(WindowEvent e) { ...
};
et dans le composant à l'"écoute" d'un
évènement "fermeture de fenêtre",
mettre en place l'écoute : addWindowListener(objetEcouteur);
classe Checkbox, CheckboxGroup:
cases à cocher et boutons radios : sont cochables
et de-cochables, peuvent être plusieures (indépendantes
ou exclusives ) et permettent le déclanchement d'action
:
les cases à cocher sont indépendantes,
les boutons radios sont en exclusion mutuelle, c'est à
dire qu'un seul au plus peut être coché.
constructeurs :
Checkbox(String texte) crée une case à cocher
(initialisée à non cochée) avec texte associé
Checkbox(String texte, boolean cochée) crée une
case à cocher avec texte associé, cochée
ou non selon la valeur booléenne
CheckboxGroup() crée un groupe de boutons radios
Checkbox(String texte, CheckboxGroup groupe, boolean cochée)
crée une bouton radio avec texte associé, cochée
ou non selon la valeur booléenne, faisant partie du groupe
indiqué
méthodes :
setLabel(String texte) spécifie le texte de la case à
cocher (ou bouton radio)
getLabel() retourne le texte de la case à cocher
getState() retourne true si la case est cochée
setState(boolean cochée) coche ou non la case selon la
valeur booléenne
addActionListener(ActionListener écouteur) met un "écouteur"
d'événement sur la case
removeActionListener(ActionListener écouteur) supprime
un "écouteur" d'événement sur
la case