Les interfaces de gestion d’événements (la suite) Les interfaces de gestion d’événements Rappel : – Pour gérer des événements, il faut implémenter des interfaces écouteur (listener) – Chaque interface définit des méthodes à écrire si l’événement se produit Les interfaces de gestion d’événements Rappel : – Les écouteurs de bas niveau sont ceux qui permettent de gérer des événements système (souris, clavier, mémoire, ...) – Les écouteurs de haut niveau représentent une action de l’utilisateur qui a un sens. Cela s’avère souvent être une combinaison d’évènements de bas niveau. Les interfaces de gestion d’événements Toutes les méthodes suivantes reçoivent un objet de la classe WindowEvent en paramètre – WindowListener • windowOpened, windowClosed, • windowActivated, windowDeactivated, • windowIconified, windowDeiconified Les interfaces de gestion d’événements • Suite – WindowFocusListener • windowGainedFocus, windowLostFocus – WindowsStateListener • windowStatedChanged Les interfaces de gestion d’événements À l’exception de mouseWheelMoved, toutes Les méthodes suivantes reçoivent un objet de la classe MouseEvent en paramètre – MouseListener • • • • • mouseClicked, mousePressed, mouseReleased, mouseEntered, mouseExited Les interfaces de gestion d’événements • Suite – MouseMotionListener • mouseMoved, • mouseDragged – MouseWheelListener • mouseWheelMoved (MouseWheelEvent) Les interfaces de gestion d’événements Toutes Les méthodes suivantes reçoivent un objet de la classe KeyEvent en paramètre – KeyListener • keyTyped, keyPressed, keyReleased En résumé, il faut connaître les interfaces écouteur associées à un composant. Les interfaces de gestion d’événements • Il existe des classes qui implémentent les interfaces de gestion d’événements. On appelle ces classes des adapteurs. – MouseAdapter – KeyAdapter – ... • Ces classes évitent d’avoir à écrire les méthodes qui ne servent pas. Les interfaces de gestion d’événements • Exemple d’adapteur public class MouseAdapter{ public void mousePressed(MouseEvent arg0) {} public void mouseEntered(MouseEvent arg0) {} public void mouseExited(MouseEvent arg0) {} public void mouseClicked(MouseEvent arg0) {} public void mouseReleased(MouseEvent arg0) {} } Gestionnaires de disposition (LayoutManager) Gestionnaires de disposition (LayoutManager) • La disposition des composants dans un GUI n’est pas une mince tâche • Deux façons de disposer : – Manuellement (déconseillé) – En utilisant les gestionnaires de disposition • Les différents gestionnaires sont expliqués à : java.sun.com/docs/books/tutorial/uiswing/layout/visual.html Gestionnaires de disposition (LayoutManager) • Quelques points importants : – La disposition par défaut de contentPane est BorderLayout – La disposition par défaut d’un JPanel est FlowLayout – Si on ajoute un composant dans un cadre après que la fenêtre soit visible, il faut aviser avec validate() ou pack(). – Un composant ne peut être que dans un seul conteneur à la fois. Exemple de composants Swing • Vous pouvez voir des exemples d’utilisation de tous les composants Swing à: http://java.sun.com/docs/books/tutorial/uiswi ng/components/ Exemple