Vous êtes sur la page 1sur 33

Par Noureddine Chenfour / nchenfour@acs.

ma












Par N. Chenfour








Swing
Swing
Dveloppement d'applications graphiques avec
Dveloppement d'applications graphiques avec

N. Chenfour 2
1. Structure de larbre des composants AWT/Swing : Le
Design Pattern Composite


Swing est un kit de dveloppement dinterfaces graphiques entirement
conforme la norme Javabeans de SUN. Une interface utilisateur
graphique peut se concevoir comme tant un assemblage de composants
lintrieur dun conteneur.
Lensemble conteneurs + composants forment linterface graphique
utilisateur.
Component

Container
add(Component)
remove(int)
getComponent(int)
getComponentCount()
components
*
JComponent

Composants Swing
Composants AWT
Component : 201 mthodes
Container : 35 mthodes
JComponent : 75 mthodes

N. Chenfour 3
On appelle composant un objet pouvant tre affich dans une interface
graphique (Bouton, zone de texte, tiquette, ), et conteneur un objet
pouvant contenir des composants ou dautres conteneurs.

La grande puissance de larchitecture mise en uvre est quun conteneur
est aussi un composant (Design Pattern Composite). On aura ainsi la
possibilit dimbriquer les conteneurs pour obtenir laspect graphique
dsir.
Les conteneurs contiennent et grent les autres composants graphiques.
Ils drivent java.awt.Container. A lexcution, ils apparaissent
gnralement sous forme de panneaux, de fentres ou de boites de
dialogues.



N. Chenfour 4

Object
java.util.EventObject
AWT

java.awt.AWTEvent
Component MenuComponent

MenuBar MenuItem
Menu
ActionEvent, AdjustmentEvent,
ComponentEvent, InputMethodEvent,
TextEvent
InternalFrameEvent, ItemEvent
java.awt.event




Container TextComponent CheckBox Label List Scrollbar Choice Button...

TextField TextArea

Window Panel

Applet
Dialog Frame ScrollPane









JDialog JWindow JFrame JApplet JComponent

SWING

JInternalFrame JPanel JTextComponent JComboBox JLabel JList

AbstractButton


JEditorPane JTextField JTextArea JButton JMenuItem JToggleButton

JMenu
JCheckBox

JRadioButton
BasicInternalFrameTitlePane, JColorChooser, JComboBox, JFileChooser, JInternalFrame.JDesktopIcon, , JLayeredPane, JMenuBar,
JOptionsPane, JPanel, JPopupMenu, JProgressBar, JRootPane , JScrollPane, JSeparator, JSlider, JSplitPane, JTabbedPane, JTable, JTableHeader,
JToolBar, JToolTip, JTree, JViewport,
2. Hierarchie des composants graphiques AWT et Swing

N. Chenfour 5
3 Fentres Swing : les conteneurs de haut niveau :
JFrame, JDialog, JWindow et JApplet.
3.1 JFrame
import javax.swing.JFrame;

public class ExempleDeFrame extends JFrame {

public ExempleDeFrame () {
setTitle("Ma premire fentre");
setSize(400, 300);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args) {
new ExempleDeFrame ();
}
}

3.2 JDialog
La classe JDialog offre pratiquement les mmes services que la classe
JFrame.
Constructeurs de la classe JDialog :
JDialog() Cre une JDialog non modale, sans titre
et sans parent
JDialog(Dialog, boolean ) Cre une JDialog modale ou non, sans
titre, avec parent
JDialog(Frame,String,boolean) Cre une JDialog modale ou non, avec
un titre et un parent


N. Chenfour 6
Exemple :
import javax.swing.JDialog;
import javax.swing.JFrame;

public class ExempleDeFrame extends JFrame {

public ExempleDeFrame () {
super("Ceci est un JFrame");
setSize(300, 240);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
JDialog dialog = new JDialog(this, true);
dialog.setTitle("Ceci est un JDialog");
dialog.setSize(220, 120);
dialog.setLocationRelativeTo(this);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
}

public static void main(String[] args) {
new ExempleDeFrame ();
}
}


Excution :


N. Chenfour 7
3.3 JWindow
La JWindow est un cas particulier de fentre. Elle ressemble une JFrame
mais sans aucune dcoration : ni bordure ni barre de titre. Cette fentre ne
dispose alors daucun bouton de contrle. Elle servira principalement de
fentre vierge configurable. Elle peut aussi servir raliser un splash
screen comme celui declipse par exemple :

3.4 JApplet
La JApplet est aussi un composant de haut niveau qui ressemble dans sa
structure une JFrame et une JDialog, mais elle est conu pour tre
affiche sur la fentre du navigateur, invoque par lintermdiaire de la
balise <applet> du langage HTML.
<html>
<body>
...
<applet code ="com.acs.applets .NotreApplet.class"
height ="150"
width ="600">
</applet>
...
</body>
</html>


N. Chenfour 8
4. Structure dune fentre Swing
Toutes les fentres Swing : JFrame, JDialog, JWindow et JApplet et
mme la fentre interne JInternalFrame (voir plus loin), sont conues
conformment lachitecture suivante ( lexeption de la JWindow qui ne
dispose pas du composant JMenuBar).


GlassPane
JMenuBar
LayeredPane
ContentPane
RootPane
Frame Content Layer

N. Chenfour 9
Larchitecture de la JFrame peut aussi tre vue de la manire suivante :



4.1 GlassPane
Cest un panneau transparent positionn en dessus du JRootPane. Il
permet de mettre des composants graphiques en dessus de tous ceux de
linterface. Il est aussi utilis pour capturer les vnements de la souris.
Il est accessible via les mthodes :
- getGlassPane() et
- setGlassPane(Component c)
de la fentre.
4.2 JLayeredPane
JLayeredPane est un conteneur qui peut possder un trs grand nombre
de couches suprposes les une sur les autres. Les composants contenus
dans un Layer (ou une couche) sont organiss selon leur position.
On peut avoir plusieurs composants dans une mme couche, dans ce cas
l, ils sont aussi organiss en couches (ou sous couche). Il seront ainsi
caractris par leur position dans la couche ; les positions sont
numrotes partir de 0 (0, 1, 2, ) du composant le plus haut vers le
plus bas dans la mme couche.
En ce qui concerne les couches (ou layers), il sont ordonnes (ou
numrotes) du plus bas vers le plus haut, en commenant par des
valeurs ngatives pour les couches les plus basses.
JFrame
GlassPane LayeredPane
JMenuBar ContentPane Autres Couches
RootPane

N. Chenfour 10
4.3 Couches Standards
Couche Index
DRAG LAYER 400
POPUP LAYER 300
MODAL LAYER 200
PALETTE LAYER 100
DEFAULT LAYER 0
FRAME CONTENT LAYER -30000

4.4 ContentPane
Cest au niveau de la ConentPane, qui est un par dfaut un JPanel, que
tous les composants graphiques de linterface utilisateur doivent tre
dposs. Il sagit du conteneur principal de toute linterface.

4.5 JMenuBar
Le composant JMenuBar est un composant Swing situ avec la
ContentPane dans la mme couche : la LayerdPane qui correspond
la FRAME CONTENT LAYER (-30000).
Il permet de dfinir un menu droulant dont les sous-menus sont des
composants de type JMenu. Ceux-ci sont des composants flotants et
seront alors visualiss dans la couche POPUP LAYER (300) soit alors en
dessus de tous les autres composants graphiques.


N. Chenfour 11
5. Etude des classes de base : Component, Container et
JComponent
5.1 Componant
void repaint()
void requestFocus() Demande avoir le focus
void setBackground(Color c)
void setBounds(int x, int y, int width, int height)
void setBounds(Rectangle r)
void setComponentOrientation(ComponentOrientation o)
void setCursor(Cursor cursor)
void setEnabled(boolean b)
void setFocusable(boolean focusable)
void setFont(Font f)
void setForeground(Color c)
void setLocation(int x, int y)
void setLocation(Point p)
void setName(String name)
String getName()
void setPreferredSize(Dimension d)
void setSize(Dimension d)
void setSize(int width, int height)
void setVisible(boolean b)

N. Chenfour 12
5.2 Container
Component add(Component comp)
Component add(Component comp, int index)
Component getComponent(int n)
Component getComponentAt(int x, int y)
Component getComponentAt(Point p)
int getComponentCount()
Component[] getComponents()
void remove(Component comp)
void remove(int index)
void removeAll()
void setLayout(LayoutManager mgr)

5.3 JComponant
La classe JComponent est la classe mre de tous les composants
Swing sauf les 4 fentres Swing. Elle tend la classe Container qui tend
elle-mme la classe Component. Elle apporte des fonctionnalits
supplmentaires telles que le support de bordures, la transparence des
composants, le support des ToolTips , le support des look and feel
et bien dautres fonctionnalits.
Les principales mthodes de ce composant sont :
void setBorder(Border border)
void setOpaque(boolean isOpaque)
void setToolTipText(String text)

N. Chenfour 13
6. Principe de dveloppement dune application Swing
6.1 Architecture
Une application Swing est ralise base de plusieurs composants Swing.
On peut numrer gnralement les composants suivants :
1. La fentre principale qui tend la classe JFrame
2. Des botes de dialogues qui tendent la classe JDialog
3. Des panneaux imbriqus dposs sur la ContentPane de chaque
fentre. Ces panneaux tendent gnralement la classe JPanel (ou
tout autre conteneur intermdiaire).
4. Des composants simples ou atomiques instances de classes filles de
la classe JComponent (JButton, JTextField, )

La fentre principale peut ainsi tre dfinie comme suit :
public class ExempleDeFrame extends JFrame {

public MainFrame () {
super("titre de la fentre");
JPanel content = new JPanel();
content.add();
content.add();
...
setContentPane(content);
setSize(, );
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args) {
new ExempleDeFrame ();
}
}

N. Chenfour 14
Remarques :
1. Il est aussi possible dutiliser la ContentPane par dfaut au lieu dun
nouveau panneau conteneur :
JPanel content = (JPanel)getContentPane() ;
2. Les composants les plus importants de linterface graphique sont
gnralement dfinis comme proprits de la classe.
6.2 Constructeurs et mthodes de la classe JFrame
Constructeurs utiles de la classe JFrame :
- JFrame() cre une nouvelle fentre initialement invisible
- JFrame(String) cre une nouvelle fentre initialement invisible
avec un titre spcifi
Principales Mthodes de la classe JFrame :
- Container getContentPane()
- Component getGlassPane()
- JMenuBar getJMenuBar()
- JLayeredPane getLayeredPane()
- JRootPane getRootPane()

- void setContentPane(Container contentPane)
- void setGlassPane(Component glassPane)
- void setJMenuBar(JMenuBar menubar)
- void setLayeredPane(JLayeredPane layeredPane)
- void setRootPane(JRootPane root)

- void setDefaultCloseOperation(int operation)
- void setIconImage(Image image)

Mthodes hrites de la classe Frame :
- static Frame[] getFrames()
- void setCursor(int cursorType)
- void setExtendedState(int state) :
ICONIFIED, MAXIMIZED_HORIZ, MAXIMIZED_VERT,
MAXIMIZED_BOTH
- void setResizable(boolean resizable)
- void setState(int state)
- void setTitle(String title)
- void setUndecorated(boolean undecorated)


N. Chenfour 15
Mthodes hrites de la classe Window :
- Window[] getOwnedWindows()
- Window getOwner()
- void pack()
- void setLocationRelativeTo(Component c)
- void toBack()
- void toFront()
Remarque :
La classe JFrame drive aussi de la classe Component et la
classe Container , elle hrite alors de toutes les mthodes de celles-ci.
7. Dveloppement bas sur les panneaux
La classe JPanel est la principale classe utilise pour la ralisation des
interfaces Swing. Il sagit la fois dun conteneur et dun composant
Swing. Tous les composants Swing de linterface utilisateur sont raliss
principalement sur un JPanel et jamais directement sur les fentres, ce qui
constitue une grande amlioration par rapport aux principes des interfaces
AWT.
La classe JPanel hrite de toutes les mthodes de ces 3 classes mres :
Component, Container et JComponent. Elle ne dispose que de
quelques mthodes (6 mthodes) propres elle et qui que ne sont pas de
grande utilit pour le dveloppeur.
Utilise comme conteneur, on utilisera constamment sa principale
mthode hrite de la classe Container : add()

java.lang.Object
java.awt.Component
javax.swing.JComponent
javax.swing.JPanel
java.awt.Container

N. Chenfour 16
8 Composants lourds et composants lgers
On parle de composant lourd lorsque lAPI du systme est utilise pour
crer le composant en question. Cest le cas des composants AWT qui sont
tous crs laide dune multitude dappels systme.
Les composants Swing quant eux ( lexception des 4 fentres qui
constituent les conteneurs haut niveau), sont tous crs laide de lAPI
Java sans passer par les librairies graphiques du systme. Ils sont ainsi
portables, mais en plus, ils disposent dun aspect visuel (look and feel)
portable, qui ne change donc pas dun systme un autre.
9 Gestion des Look And Feel: Le Design Pattern
Abstract Factory
9.1 Dterminer les diffrents Look & Feel possibles :
UIManager.LookAndFeelInfo LF[];
LF=UIManager.getInstalledLookAndFeels();
Exemple :
UIManager.LookAndFeelInfo LF[];
LF=UIManager.getInstalledLookAndFeels();
for (int i=0;i<LF.length;i++) {
System.out.println(
LF[i].getName()+ " : " +
LF[i].getClassName()
);
}

Metal : javax.swing.plaf.metal.MetalLookAndFeel
CDE/Motif : com.sun.java.swing.plaf.motif.MotifLookAndFeel
Windows : com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Windows Classic : com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel

N. Chenfour 17
9.2 Changer de Look & Feel
Changement du look & Feel
UIManager.setLookAndFeel("classe du Look And Feel");

Application du look & feel un arbre de composants :
SwingUtilities.updateComponentTreeUI(Racine de larbre);

Exemple :
try {
UIManager.setLookAndFeel (
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel "
);
}
catch(Exception e) {}
JFrame f = new JFrame();
SwingUtilities.updateComponentTreeUI(f);


N. Chenfour 18
10. Positionnement absolu et disposition par Layout
Positionnement absolu
Pour tous composant Swing composant ajouter sur un panneau
P . On pourra faire :
- composant.setLocation(x, y);
- composant.setSize(width, height);
- composant.setBounds(x, y, width, height);

A Condition :
- P.setLayout(null);

Disposition par Layout
Il sagit dassocier un Layout Manager (ou gestionnaire demplacement) au
panneau conteneur.
P.setLayout(new UneClasseLayoutManagerConnue()) ;
Celui-ci va calculer automatiquement les positions et les tailles des
composants quil contient. Le calcul est ralis suivant une politique
demplacement propre au layout manager .
Diffrents layout managers existent alors, chacun avec sa propre
politique demplacement.

N. Chenfour 19
Le concepteur de linterface aura alors les tches et possibilits suivantes :
- Choisir des Layout Managers adquats associer aux diffrents
panneaux de son interface.
- Utiliser une composition de Layout Managers laide dune
superposition de panneaux
- Crer un Layout Manager appropri.
Remarques :
- Un composant JPanel est gr par dfaut laide du layout
manager FlowLayout
- La ContentPane est gre par dfaut laide du Layout
Manager BorderLayout
11. Principe des Gestionnaires demplacement :
Layout Managers et Design Pattern Bridge

Container
setLayout(LayoutManager)
LayoutManager

FlowLayout
JFrame
BorderLayout JLabel JPanel
layoutManager

N. Chenfour 20
12. Etude des Layouts Manager de base : FlowLayout,
BorderLayout, GridLayout, BoxLayout, GridBagLayout
12.1 FlowLayout
- Constructeurs :
public FlowLayout()
public FlowLayout(int alignment)
FlowLayout.LEFT
FlowLayout.RIGHT
FlowLayout.CENTER
public FlowLayout(int alignment, int hgap, int vgap)
hgap : espacement horizontal (en pixels) entre les composants
vgap : espacement vertical (en pixels) entre les composants

Exemple :
JPanel P = new JPanel() ;
P.setLayout(new FlowLayout(FlowLayout.LEFT)) ;

- Mthodes utilises pour ajouter des composants sur un JPanel :
public void add(Componant [, int]) ;

Exemple :
JPanel P = new JPanel() ;
P.setLayout(new FlowLayout(FlowLayout.LEFT)) ;
P.add(new JButton("Ok")) ;
P.add(new JButton("Annuler")) ;


N. Chenfour 21
12.2 BorderLayout
North
^
East
v
^
Center
v
^
West
v
South

- Constructeurs :
public BorderLayout()
public BorderLayout(int hgap, int vgap)

- Mthodes utilises pour ajouter des composants sur un JPanel :
public void add("rgion", Composant) ;
rgion prend les valeurs : North, South, East, West, Center

Exemple :
JPanel P = new JPanel() ;
P.setLayout(new BorderLayout()) ;

JPanel Ps = new JPanel() ;
Ps.setLayout(new FlowLayout()) ;
Ps.add(new JButton("Ok")) ;
Ps.add(new JButton("Annuler")) ;

P.add("Center", new JTextArea(20,10)) ;
P.add("South", Ps) ;


N. Chenfour 22
12.3 BoxLayout
Composant N 1
Composant N 2

Composant N N
- Constructeurs :
public BoxLayout(Container target, int axis)
target est le conteneur lui-mme, celui auquel on applique le
layout.
axis est une constante qui prcise si lalignement est vertical ou
horizontal :
BoxLayout.X_AXIS
BoxLayout.Y_AXIS

- Mthodes utilises pour ajouter des composants sur un JPanel :
public void add(Composant [, indice]) ;

Exemple :
JPanel P = new JPanel() ;
P.setLayout(new BoxLayout(P, BoxLayout.Y_AXIS)) ;
P.add(new JButton("Ok")) ;
P.add(new JButton("Annuler")) ;

JPanel p = new JPanel(new BoxLayout(p, BoxLayout.Y_AXIS) );


N. Chenfour 23
12.4 GridLayout
1 2 3
4 5 6

- Constructeurs :
public GridLayout()
Une seule ligne avec un nombre de composants quelconque, un
composant par cellule
public GridLayout(int rows, int cols)
public GridLayout(int rows, int cols, int hgap, int vgap)

- Mthodes utilises pour ajouter des composants sur un JPanel :
public void add(Composant [, indice]) ;
Exemple :

JPanel P = new JPanel() ;
P.setLayout(new GridLayout(2,3)) ;
for (int i=1 ;i<=6 ;i++) P.add(new JButton(""+i)) ;


Remarques :
P.setLayout(new GridLayout(0,3)) ;
Cre un Grid avec 3 colonnes et un nombre de lignes quelconque
dpendant du nombre de composants ajouts au panneau.

P.setLayout(new GridLayout(3, 0)) ;
Cre un Grid avec 3 lignes et un nombre de colonnes quelconque
dpendant du nombre de composants ajouts au panneau.



N. Chenfour 24
13. Principe des Ecouteurs Listeners et design
Patterns Bridge et Observer .
Un couteur dvnement est un objet de classe qui coute des actions
particulires sur un composant donn. Cest un observateur ralis
conformment au design pattern observer . On parlera aussi de
contrleur suivant le design pattern MVC (Model View Controler).
Limplmentation dun couteur est ralise sous forme dun bridge.

Exemple :
public class ExitAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
Component
AddXListener(XListener)
removeXListener(XListener)
getXListeners()

XListener
void m1(XEvent) ;
void m2(XEvent) ;
XListenerImpl 1
JFrame
JTextField JButton
listener
XListenerImpl 1

N. Chenfour 25
Usage :
Soit un bouton de linterface :
JButton quitter = new JButton("Quitter");
Linstruction suivante permet dassocier au bouton quitter lcouteur
dvnement qui permet de quitter lapplication suite une action click sur
le bouton:
quitter.addActionListener(new ExitAction()) ;
14. Composition et rutilisabilit des couteurs

E3
E2
E1
Cmp1
Cmp2

Cmp3

E4
Composants Ecouteurs

N. Chenfour 26
15. Diffrents Modles dimplmentation des couteurs
dvnements
Il existe 2 modles dimplmentations possibles :
1. laide dune classe (ou contrleur) Externe Avantage :
Rutilisabilit de lcouteur dvnements
2. Une implmentation interne Avantage : Accessibilit des
composants membres. Dans ce cas, il y a encore 3 types
dimplmentation :
- La classe dinterface implmente elle-mme lcouteur
- Le contrleur est une classe Interne
- Le contrleur est une classe Locale anonyme
15.1 Contrleur externe
public class Controleur implements XListener {
private proprits ventuelles ;
public Controleur(paramtres ventuels) {

}

public methodeDecoute(XEvent e) {
traitement de lvnement
}

}

Public class ComposantGraphique extends JFrame|JPanel| {
JComponent cmp ;

private void build() {

cmp.addXListener(new Controleur()) ;

}

}

N. Chenfour 27
15.2 Contrleur entrelac
public class ComposantGraphique
extends JFrame|JPanel|
implements XListener
{
JComponent cmp ;

private void build() {
JComponent cmp =
cmp.addXListener(new Controleur()) ;

}

public methodeDecoute(XEvent e) {
traitement de lvnement
}

}

Remarques :
1. Dans ce cas, le contrleur a accs toutes les proprits de la
classe. Il peut donc agir facilement sur les diffrents composants de
linterface.
2. Dans le cas dun contrleur externe, si celui-ci a besoin daccder
aux composants de linterface, il faut les lui passer, par exemple en
paramtre de son constructeur, ou bien passer la rfrence de toute
la fentre ou le panneau en question :

cmp.addXListener(new Controleur(this)) ;



N. Chenfour 28
15.3 Contrleur interne
Public class ComposantGraphique extends JFrame|JPanel| {
JComponent cmp ;

private void build() {

cmp.addXListener(new Controleur()) ;

}

public class Controleur implements XListener {

public methodeDecoute(XEvent e) {
traitement de lvnement
}

}
}
Remarque :
Dans ce cas aussi, le contrleur a accs toutes les proprits de la
classe.
15.4 Contrleur anonyme
Public class ComposantGraphique extends JFrame|JPanel| {
JComponent cmp ;

private void build() {

cmp.addXListener(new Controleur() {
public methodeDecoute(XEvent e) {
traitement de lvnement
}

}) ;

}

}


N. Chenfour 29
16. Hirarchie des vnements



EventObject
+ getSource() : Object
AWTEvent
+ setSource(Object)
ActionEvent
+ getActionCommand()
+ getModifiers()
ComponentEvent
+ getComponent()
FocusEvent

InputEvent
+ isShiftDown()
+ isControlDown()
MouseEvent
+ getClickCount()
+ getButton()
+ getX()
+ getY()
+
KeyEvent
+ getKeyChar()
+ setKeyChar()
CaretEvent
+ getDot()
+ getMark()
ChangeEvent


N. Chenfour 30
17. Les couteurs de base
Tous les composants graphiques disposent dun ensemble dcouteurs
communs (associs la classe Component). Les plus utiliss sont :
- FocusListener
- KeyListener
- MouseListener
- MouseMotionListener

17.1 FocusListener
void focusGained(FocusEvent e)
void focusLost(FocusEvent e)

17.2 KeyListener
void keyPressed(KeyEvent e)
void keyReleased(KeyEvent e)
void keyTyped(KeyEvent e)
KeyEvent
- char getKeyChar()
- void setKeyChar(char keyChar)
- int getKeyCode()
- void setKeyCode(int keyCode)
- int getKeyLocation()
- static String getKeyModifiersText(int modifiers)
- static String getKeyText(int keyCode)
- Boolean isActionKey()
- void setModifiers(int modifiers)


N. Chenfour 31
17.3 MouseListener
void mouseClicked(MouseEvent e)
void mouseEntered(MouseEvent e)
void mouseExited(MouseEvent e)
void mousePressed(MouseEvent e)
void mouseReleased(MouseEvent e)
MouseEvent
- int getButton()
- BUTTON1, BUTTON2, BUTTON3
- int getX()
- int getY()
- int getClickCount()
- Point getPoint()
- Boolean isAltDown()
- Boolean isControlDown()
- void translatePoint(x, y)
- boolean isAltGraphDown()
- boolean isShiftDown()

17.4 MouseMotionListener
void mouseDragged(MouseEvent e)
void mouseMoved(MouseEvent e)

17.5 MouseWheelListener
void mouseWheelMoved(MouseWheelEvent e)
MouseWheelEvent
- int getScrollAmount()
- int getScrollType()
- int getUnitsToScroll()
- int getWheelRotation()

N. Chenfour 32
18. Ecouteurs complmentaires
18.1 ActionListener
void actionPerformed(ActionEvent e)
Associ aux composants boutons AbstractButton, JTextField,
JComboBox et Timer.

18.2 TextListener
void textValueChanged(TextEvent e)
Associ aux composants de texte : JTextComponent

18.3 CaretListener
void caretUpdate(CaretEvent e)
Associ aux composants de texte : JTextComponent

18.4 ComponentListener
void componentHidden(ComponentEvent e)
void componentMoved(ComponentEvent e)
void componentResized(ComponentEvent e)
void componentShown(ComponentEvent e)

18.5 ContainerListener
void componentAdded(ContainerEvent e)
void componentRemoved(ContainerEvent e)

18.6 AncestorListener
void ancestorAdded(AncestorEvent event)
void ancestorMoved(AncestorEvent event)
void ancestorRemoved(AncestorEvent event)

18.7 ChangeListener
void stateChanged(ChangeEvent e)

N. Chenfour 33
19. Ecouteurs des fentres
WindowListener
void windowActivated(WindowEvent e)
void windowClosed(WindowEvent e)
void windowClosing(WindowEvent e)
void windowDeactivated(WindowEvent e)
void windowDeiconified(WindowEvent e)
void windowIconified(WindowEvent e)
void windowOpened(WindowEvent e)

WindowFocusListener
void windowGainedFocus(WindowEvent e)
void windowLostFocus(WindowEvent e)

WindowStateListener
void windowStateChanged(WindowEvent e)


WindowEvent
int getNewState()
int getOldState()
Window getOppositeWindow()
Window getWindow()

Vous aimerez peut-être aussi