0% ont trouvé ce document utile (0 vote)
3 vues74 pages

Interface graphique Java avec Swing

Transféré par

Ana Fevereiro
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues74 pages

Interface graphique Java avec Swing

Transféré par

Ana Fevereiro
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Interface graphique en Java

API swing
Plan
I. INTERFACE GRAPHIQUE .................................................................................................................... 2
INTRODUCTION ..................................................................................................................................... 2
UN PREMIER EXEMPLE .......................................................................................................................... 5
LES FENETRES GRAPHIQUES : LA CLASSE JFRAME................................................................................. 7
DES METHODES UTILES DE LA CLASSE COMPONENT ............................................................................. 8
LES COMPOSANTS ATOMIQUES .............................................................................................................10
Les cases à cocher ..................................................................................................................11
Les boutons radio ...................................................................................................................12
Les étiquettes ..........................................................................................................................14
Les champs de texte ................................................................................................................15
Les boîtes de liste ...................................................................................................................16
Les boîtes de liste combinée ...................................................................................................18
LES MENUS ET LES BARRES D'OUTILS ...................................................................................................20
Les menus déroulants .............................................................................................................21
Les menus surgissants ............................................................................................................27
Les barres d'outils ..................................................................................................................28
Les bulles d'aide .....................................................................................................................30
LES BOITES DE DIALOGUE ....................................................................................................................31
Les boîtes de message.............................................................................................................32
Les boîtes de confirmation......................................................................................................34
Les boîtes de saisie .................................................................................................................36
Les boîtes d'options ................................................................................................................38
Les boîtes de dialogue personnalisées....................................................................................40
LES GESTIONNAIRES DE MISE EN FORME ..............................................................................................42
Le gestionnaire BorderLayout................................................................................................43
Le gestionnaire FlowLayout ...................................................................................................45
Le gestionnaire CardLayout ...................................................................................................47
Le gestionnaire GridLayout ...................................................................................................48
Un programme sans gestionnaire de mise en forme...............................................................50
Une classe Insets pour gérer les marges ................................................................................51
DESSINONS AVEC JAVA ........................................................................................................................53
Création d’un panneau ...........................................................................................................54
Dessin dans un panneau .........................................................................................................55
La classe Graphics .................................................................................................................57
Affichage d’images .................................................................................................................61
II. LA GESTION DES EVENEMENTS .................................................................................................... 63
INTRODUCTION ....................................................................................................................................63
TRAITER UN EVENEMENT .....................................................................................................................64
INTERCEPTER UN EVENEMENT .............................................................................................................65
UN PREMIER EXEMPLE .........................................................................................................................66
Première version ....................................................................................................................66
Deuxième version ...................................................................................................................67
LA NOTION D’ADAPTATEUR .................................................................................................................68
RECAPITULONS ....................................................................................................................................69
UN EXEMPLE AVEC DES BOUTONS ........................................................................................................71
UN EXEMPLE DE CREATION DYNAMIQUE DE BOUTONS .........................................................................74
LES CLASSES INTERNES ET ANONYMES ................................................................................................76
Les classes internes ................................................................................................................76
Les classes anonymes .............................................................................................................78
BIBLIOGRAPHIE .............................................................................................................................................. 79

INDEX ................................................................................................................................................................. 80
Interface graphique Introduction

I. Interface graphique

Introduction
Il existe deux principaux types de composants susceptibles
d’intervenir dans une interface graphique :

les conteneurs qui sont destinés à contenir d’autres


composants, comme par exemple les fenêtres ;

les composants atomiques qui sont des composants qui ne


peuvent pas en contenir d’autres, comme par exemple les
boutons.

Les classes suivies d'un astérisque (*) sont abstraites.

[Link]
|
+--[Link]* composants
|
+--[Link]* conteneurs
|
+--[Link]
|
+--[Link]
|
+--[Link]
|
+--[Link]
|
+-- [Link]
|
+--[Link]
|
+--[Link] fenêtre graphique
|
+--[Link]
|
+--[Link] boîte de dialogue

Page 2
Interface graphique Introduction

[Link]
|
+--[Link]* composants
|
+--[Link]* conteneurs
|
+--[Link]* composants atomiques
|
+--[Link] panneau utiliser pour dessiner
|
+--[Link]
|
+--[Link] bouton
|
+--[Link]
|
+--[Link] case à cocher
|
+--[Link] bouton radio
|
+--[Link] option d'un menu
|
+--[Link] option d'un menu
|
+--[Link] option d'un menu
|
+--[Link] menu ou option d'un menu
|
+--[Link] étiquette
|
+--[Link]
|
+--[Link] champ de texte
|
+--[Link] boîte de liste
|
+--[Link] boîte de liste combinée
|
+--[Link] panneau de défilement
|
+--[Link] barre de menu
|
+--[Link] menu surgissant
|
+--[Link] barre d'outils

Page 3
Interface graphique Introduction

Afin d’éviter d’avoir à s’interroger sans cesse sur la


répartition dans les paquetages des différentes classes
utilisées dans les interfaces graphiques, nous importerons
systématiquement toutes les classes des paquetages
[Link] et [Link].

Page 4
Interface graphique Introduction

Un premier exemple
[Link]

import [Link].* ;
import [Link].* ;
public class JFrameExemple {
public JFrameExemple() {

JFrame maJFrame = new


JFrame([Link]().toString());
// JFrame maJFrame = new JFrame();
// [Link]([Link]().toString()) ;

JLabel etiquette = new JLabel("Mon premier Exemple label dans


une fenetre);
[Link](true);
[Link](100,200,600,500) ;
//le coin supérieur gauche de la fenêtre est placé au pixel de
coordonnées 10, 40 et ses dimensions seront de 300 * 200 pixels

[Link]([Link]);
[Link]([Link]);
[Link]([Link]("Times-36"));

[Link]().add(etiquette);
//Pour ajouter un label à une fenêtre, il faut
incorporer le label dans le contenu de la fenêtre. La
méthode getContentPane de la classe JFrame fournit une
référence à ce contenu, de type Container.

//Termine le processus lorsqu'on clique sur la croix rouge

[Link](JFrame.EXIT_ON_CLOSE);

[Link](); // rendre la fenêtre visible, pack fait en


sorte que tous les composants de l'application soient à
// leur preferredSize
[Link](true);
}
public static void main(String []argv) {
new JFrameExemple();
}
}
Page 5
Interface graphique Un premier exemple

Contrairement à une fenêtre, un Label est visible par défaut.

Une fenêtre de type JFrame peut être retaillée, déplacée et


réduite à une icône. Attention, la fermeture d'une fenêtre de
type JFrame ne met pas fin au programme, mais rend
simplement la fenêtre invisible (comme si on appelait la
méthode setVisible(false)). Pour mettre fin au programme, il
faut fermer la fenêtre console.

Page 6
Interface graphique Les fenêtres graphiques : la classe
JFrame

Les fenêtres graphiques : la classe


JFrame
La classe JFrame du paquetage [Link] permet de créer
des fenêtres graphiques.

La classe JFrame dispose de deux constructeurs : un


constructeur sans argument et un constructeur avec un
argument correspondant au titre de la fenêtre.
Remarque
Les instructions
JFrame fen = new JFrame() ;
[Link]("Une fenêtre") ;
et l'instruction
JFrame fen = new JFrame("Une fenêtre") ;
sont équivalentes.

Une fenêtre est un conteneur destiné à contenir d'autres


composants.

La méthode getContentPane de la classe JFrame fournit une


référence, de type Container, au contenu de la fenêtre.

Les méthodes add et remove de la classe Container


permettent respectivement d'ajouter et de supprimer un
composant d'une fenêtre.
Component add(Component compo)
void remove(Component compo)

Page 7
Interface graphique Des méthodes utiles de la classe
Component

Des méthodes utiles de la classe


Component
La classe Component est une classe abstraite dérivée de la
classe Object qui encapsule les composants d'une interface
graphique.

Les méthodes suivantes de la classe Component permettent de


gérer l'aspect d'un composant et donc en particulier d'une
fenêtre.

Montrer et cacher un composant


void setVisible(boolean b)
Exemple :
[Link](true) rend visible le composant compo

Activer et désactiver un composant


void setEnabled(boolean b)
Exemple :
[Link](true) active le composant compo

Connaître l’état (activé ou non) d’un composant


boolean isEnabled()
Exemple :
[Link]() retourne true si le composant compo
est activé

Modifier la couleur de fond d'un composant


void setBackground(Color c)

Modifier la couleur du premier plan d'un composant


void setForeground(Color c)

Modifier la taille d'un composant


void setSize(int largeur, int hauteur)

Page 8
Interface graphique Des méthodes utiles de la classe
Component
Modifier la position et la taille d'un composant
void setBounds(int x, int y, int largeur, int hauteur)

Gérer les dimensions d'un composant


Dimension getSize()
void setSize(Dimension dim)
//La classe Dimension du paquetage [Link] contient
deux champs publics : un champ height (hauteur) et un
champ width (largeur).

Les composants de l’interface


La fenêtre (héritée de JFrame) que l’on va définir contiendra en tant que membres les noms des composants
d’interface (boutons, zones de texte ou de dessin ...) dont on souhaite disposer.
Il conviendra ensuite de les initialiser et de définir leur disposition. Pour cela, le constructeur de la classe
d’interface devra se charger :
- de créer les objets associés (new)
- de les initialiser par leurs constructeurs ou par tout autre moyen disponible
- de les placer
- de leur associer les actions liées aux événements qu’ils peuvent recevoir Il se chargera par ailleurs de
dimensionner la fenêtre et de la rendre visible à l’écran. Les principales classes de composants sont les suivants :
JButton : un bouton à cliquer avec un texte
JLabel : juste un titre (un texte non éditable)
JTextField : une zone de texte éditable d’une ligne
JTextArea : une zone de texte éditable multi lignes
JCheckBox : une case à cocher
JComboBox : une liste déroulante
JList : une liste dans laquelle on peut sélectionner un ou plusieurs éléments par double clic
JScrollBar : un ascenseur horizontal ou vertical
JMenubar : une barre de menu
JFileChooser : une fenêtre de dialogue permettant de choisir un fichier
JSlider : un curseur linéaire
JProgressBar : une barre indiquant la progression d’une opération

Remarque : Cette liste n’est pas exhaustive. Il existe aussi des groupes de cases à cocher, des boîtes de dialogue,
des sous menus etc.

Page 9
Interface graphique Les composants atomiques

Les composants atomiques


La classe JComponent est une classe abstraite dérivée de la
classe Container qui encapsule les composants atomiques
d'une interface graphique. Les principaux composants
atomiques offerts par Java sont les boutons, les cases à cocher,
les boutons radio, les étiquettes, les champs de texte, les boîtes
de liste et les boîtes de liste combinée.
[Link]
|
+--[Link]*
|
+--[Link]*
|
+--[Link]*
|
+--[Link]
|
+--[Link] bouton
|
+--[Link]
|
+--[Link] case à cocher
|
+--[Link] bouton radio
|
+--[Link] étiquette
|
+--[Link]
|
+--[Link] champ de texte
|
+--[Link] boîte de liste
|
+--[Link] boîte de liste combinée
|
+--[Link] panneau de défilement

La méthode setPreferredSize de la classe JComponent


permet d'imposer une taille à un composant. Elle prend en
argument un objet de type Dimension.
Exemple
JButton bouton = new JButton("Un bouton") ;
[Link](new Dimension(10, 20)) ;
//bouton de largeur 10 et de hauteur 20

Page 10
Interface graphique Les composants atomiques

Les cases à cocher


La case à cocher de type JCheckBox permet à l’utilisateur
d’effectuer un choix de type oui/non.

Exemple [ [Link]]

class MaFenetre extends JFrame {


private JCheckBox MaCase;
public MaFenetre () {
super("Une fenetre avec une case") ;
setBounds(10,40,300,200) ;
MaCase = new JCheckBox("Une case") ;
//création d’une case à cocher de référence MaCase
portant l’étiquette Une case
getContentPane().add(MaCase) ;
}
}

Par défaut, une case à cocher est construite dans l’état non
coché (false). La méthode isSelected de la classe
AbstractButton permet de connaître l’état (true ou false) d’une
case à cocher à un moment donné. La méthode setSelected de
la classe AbstractButton permet de modifier l’état d’une case à
cocher.
Exemple
[Link](true) ;
//coche la case de référence MaCase

Page 11
Interface graphique Les composants atomiques

Les boutons radio


Le bouton radio de type JRadioButton permet à l’utilisateur
d’effectuer un choix de type oui/non. Mais sa vocation est de
faire partie d’un groupe de boutons dans lequel une seule option
peut être sélectionnée à la fois.

Exemple [[Link]]

class MaFenetre extends JFrame {


private JRadioButton bRouge;
private JRadioButton bVert;
public MaFenetre () {
super("Une fenetre avec des boutons radio") ;
setBounds(10,40,300,200) ;
bRouge = new JRadioButton("Rouge") ;
//création d’un bouton radio de référence bRouge
portant l’étiquette Rouge
bVert = new JRadioButton("Vert") ;
//création d’un bouton radio de référence bVert
portant l’étiquette Vert
ButtonGroup groupe = new ButtonGroup() ;
[Link](bRouge) ; [Link](bVert) ;
//Un objet de type ButtonGroup (classe du
paquetage [Link], dérivée de la classe Object)
sert uniquement à assurer la désactivation
automatique d’un bouton lorsqu’un bouton du groupe
est activé. Un bouton radio qui n’est pas associé à un
groupe, exception faite de son aspect, se comporte
exactement comme une case à cocher.
Container contenu = getContentPane() ;
[Link](new FlowLayout()) ;
//un objet de type FlowLayout est un gestionnaire de
mise en forme qui dispose les composants les uns à la
suite des autres
[Link](bRouge) ;
Page 12
Interface graphique Les composants atomiques

[Link](bVert) ;
//Ajout de chaque bouton radio dans la fenêtre. Un
objet de type ButtonGroup n’est pas un composant et
ne peut pas être ajouté à un conteneur.
}
}

Par défaut, un bouton radio est construit dans l’état non


sélectionné (false) (utilisation des méthodes isSelected et
setSelected de la classe AbstractButton).

Page 13
Interface graphique Les composants atomiques

Les étiquettes
Une étiquette de type Jlabel permet d’afficher dans un
conteneur un texte (d’une seule ligne) non modifiable, mais que
le programme peut faire évoluer.

Exemple [[Link]]

class MaFenetre extends JFrame {


private Jlabel MonTexte;
public MaFenetre () {
super("Une fenetre avec une etiquette") ;
setBounds(10,40,300,200) ;
MonTexte = new Jlabel ("texte initial") ;
//création d’une étiquette de référence MonTexte
contenant le texte texte initial
getContentPane().add(MonTexte) ;
[Link]("nouveau texte") ;
//modification du texte de l’étiquette de référence
MonTexte
}
}

Page 14
Interface graphique Les composants atomiques

Les champs de texte


Un champ de texte (ou boîte de saisie) de type JTextField est
une zone rectangulaire dans laquelle l’utilisateur peut entrer ou
modifier un texte (d’une seule ligne).

Exemple [[Link]]
class MaFenetre extends JFrame {
private JTextField MonChamp1 ;
private JTextField MonChamp2 ;
public MaFenetre () {
super("Une fenetre avec deux champs de texte") ;
setBounds(10,40,300,200) ;
MonChamp1 = new JtextField(20) ;
//champ de taille 20 (la taille est exprimée en nombre
de caractères standard affichés dans le champ)
Monchamp2 = new JtextField("texte initial", 10) ;
//champ de taille 10 contenant au départ le texte texte
initial
getContentPane().add(MonChamp1) ;
getContentPane().add(MonChamp2) ;
}
}

Aucun texte n’est associé à un tel composant pour l’identifier.


On pourra utiliser un objet de type JLabel qu’on prendra soin
de disposer convenablement.

La méthode getText permet de connaître à tout moment le


contenu d’un champ de texte.
Exemple
String ch= [Link]() ;

Les champs de saisie de texte


• ordinaire : JTextField
• mot de passe (saisie masquée) : JPasswordField
• champ formatés (date, etc) : JFormattedTextField
Page 15
Interface graphique Les composants atomiques

Les boîtes de liste


La boîte de liste de type JList permet de choisir une ou
plusieurs valeurs dans une liste prédéfinie. Initialement, aucune
valeur n’est sélectionnée dans la liste.(JList de java 1.7 sont
génériques)

Exemple[[Link]]
String[] couleurs = {"rouge", "bleu", "gris", "vert",
"jaune", "noir"};
JList MaListe = new Jlist<String>(couleurs) ;
[Link](2) ;
//sélection préalable de l’élément de rang 2

Il existe trois sortes de boîtes de liste, caractérisées par un


paramètre de type :
Valeur du paramètre de type Type de sélection
correspondante
SINGLE_SELECTION sélection d’une seule valeur
SINGLE_INTERVAL_SELECTION sélection d’une seule plage de
valeurs (contiguës)
MULTIPLE_INTERVAL_SELECTION sélection d’un nombre
quelconque de plages de
valeurs
Par défaut, le type d’une boîte de liste est
MULTIPLE_INTERVAL_SELECTION.

La méthode setSelectionMode permet de modifier le type


d’une boîte de liste.
Exemple
[Link](ListSelectionModel.SINGLE_SELECTION);

Page 16
Interface graphique Les composants atomiques

Pour une boîte de liste à sélection simple, la méthode


getSelectedValue fournit la valeur sélectionnée. Son résultat
est de type Object.
Exemple
String ch = (String) [Link]();
//cast obligatoire

Pour les autres types de boîte de liste, la méthode


getSelectedValue ne fournit que la première des valeurs
sélectionnées. Pour obtenir toutes les valeurs, il faut utiliser la
méthode getSelectedValues qui fournit un tableau d'objets.
Exemple
Object[] valeurs = [Link]();
for (int i=0 ;i<[Link] ;i++)
[Link]((String) valeurs[i]) ;
//cast obligatoire

Par défaut une boîte de liste ne possède pas de barre de


défilement. On peut lui en ajouter une en l'introduisant dans un
panneau de défilement de type JScrollPane (classe dérivée de
la classe JComponent). Dans ce cas, on n'ajoute pas au
conteneur la boîte de liste, mais le paneau de défilement.
Exemple
JFrame fen = new JFrame() ;
JScrollPane defil = new JScrollPane(MaListe) ;
//la liste de référence MaListe affiche 8 valeurs. Si elle en
contient moins, la barre de défilement n'apparaît pas.
[Link](4) ;
//seules 4 valeurs de la liste sont visibles à la fois
[Link]().add(defil) ;
//ajoute le panneau de défilement au contenu de la fenêtre

Page 17
Interface graphique Les composants atomiques

Les boîtes de liste combinée


La boîte de liste combinée (boîte combo) de type
JComboBox associe un champs de texte et une boîte de liste
à sélection simple. Tant que le composant n'est pas sélectionné,
seul le champ de texte s'affiche:

Lorsque l'utilisateur sélectionne le champ de texte, la boîte de


liste s'affiche :

L'utilisateur peut choisir une valeur dans la boîte de liste qui


s'affiche alors dans le champ de texte. Initialement, aucune
valeur n’est sélectionnée dans la liste.
Exemple[[Link]]
String[] couleurs = {"rouge", "bleu", "gris", "vert",
"jaune", "noir"};
JComboBox MaCombo = new JComboBox(couleurs) ;
[Link](2) ;
//sélection préalable de l’élément de rang 2

La boîte combo est dotée d'une barre de défilement dès que son
nombre de valeurs est supérieur à 8. On peut modifier le
nombre de valeurs visibles avec la méthode
setMaximumRowCount.
Exemple
[Link](4) ;
//au maximum 4 valeurs sont affichées

Page 18
Interface graphique Les composants atomiques

Par défaut, le champ de texte associé à une boîte combo n'est


pas éditable, ce qui signifie qu'il sert seulement à présenter la
sélection courante de la liste. Mais il peut être rendu éditable
par la méthode setEditable. L'utilisateur peut alors y entrer soit
une valeur de la liste (en la sélectionnant), soit une valeur de
son choix (en la saisissant).
Exemple
[Link](true) ;

La méthode getSelectedItem fournit la valeur sélectionnée.


Son résultat est de type Object.
Exemple
String ch = (String) [Link]();

La méthode getSelectedIndex fournit le rang de la valeur


sélectionnée. Elle fournit la valeur -1, si l'utilisateur a entré une
nouvelle valeur (c'est à dire une valeur qui n'a pas été
sélectionnée dans la liste).

La boîte combo dispose de méthodes appropriées à sa


modification.
Exemple
[Link]("orange") ;
//ajoute la valeur orange à la fin de la liste combo
[Link]("orange", 2) ;
//ajoute la valeur orange à la positon 2 de la liste combo
[Link]("gris") ;
//supprime la valeur gris de la liste combo

Page 19
Interface graphique Les menus et les barres d'outils

La classe JButton

Elle permet de définir des boutons sur lesquels on peut cliquer. Ses
principales méthodes sont :

JButton(String) construction avec définition


du texte contenu dans le bouton
JButton(ImageIcon) construction avec une icone dans le bouton
JButton(String,ImageIcon) construction avec définition du texte
et d’une icône dans le bouton
String getText() qui retourne le texte contenu dans le bouton
void setText(String) qui définit le texte contenu dans le bouton
void addActionListener(ActionListener) pour associer l'objet
qui traitera les clics sur le bouton (voir [Link])

import [Link];
import [Link];

import [Link].*;

public class JButtonExemple {


public JButtonExemple() {
JFrame maJFrame = new JFrame("Me voici!");
JButton monBouton = new JButton("Cliquez-moi!");

Container panel =[Link]();


[Link](new FlowLayout());
[Link](monBouton);
[Link]();
[Link](true);
}
public static void main(String []argv) {
new JButtonExemple() ;
}
}

Page 20
Interface graphique Les menus et les barres d'outils

La classe JTextArea
Elle permet de définir des zones de texte sur plusieurs lignes
modifiables sans ascenseurs
principales méthodes sont :

JTextArea(String) qui crée une zone de texte avec un contenu


initial
JTextArea(String,int,int) qui crée une zone de
texte avec un contenu initial et précise le nombre
de lignes et de colonnes de la zone de texte
void append(String) qui ajoute la chaîne à la fin du texte
affiché
void insert(String,int) qui insère la chaîne au texte affiché à
partir du rang donné

Page 21
Interface graphique Les menus et les barres d'outils

Les menus et les barres d'outils


Une fenêtre de type JFrame est composée de composants
atomiques, mais aussi de composants qui lui sont propres
comme les menus et les barres d'outils.

[Link]
|
+--[Link]*
|
+--[Link]*
|
+--[Link]*
|
+--[Link]
|
+--[Link] option d'un menu
|
+--[Link] option d'un menu
|
+--[Link] option d'un menu
|
+--[Link] menu ou option d'un menu
|
+--[Link] barre de menu
|
+--[Link] menu surgissant
|
+--[Link] barre d'outils

Page 22
Interface graphique Les menus et les barres d'outils

Les menus déroulants


Les menus déroulants usuels font intervenir trois sortes d'objets:
un objet barre de menu de type JMenuBar ;

setJMenuBar(JMenuBar) : ajout de la barre de menu


dans la fenêtre

différents objets menu, de type JMenu, visibles dans la barre de


menu ;

pour chaque menu, les différentes options, de type


JMenuItem, qui le constituent.

La méthode setEnabled de la classe Component permet


d'activer ou de désactiver un menu ou une option.

Page 23
Interface graphique Les menus et les barres d'outils

a. Un exemple

Import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


private JMenuBar barreMenus ;
private JMenu couleur, dimensions ;
private JMenuItem rouge, vert, hauteur, largeur ;
public MaFenetre () {
super("Une fenetre avec un menu") ;
setSize(300, 200) ;
//création d'une barre de menu
barreMenus = new JMenuBar() ;
setJMenuBar(barreMenus) ;
//ajout de la barre de menu dans la fenêtre
//création d'un menu Couleur et de ses options Rouge et
Vert
couleur = new JMenu("Couleur") ;
[Link](couleur) ;
rouge = new JMenuItem("Rouge") ;
[Link](rouge) ;
[Link]() ; ;
//ajout d'une barre séparatrice avant l'option suivante
vert = new JMenuItem("Vert") ;
[Link](vert) ;
//création d'un menu Dimensions et de ses options
Hauteur et Largeur
dimensions = new JMenu("Dimensions") ;
[Link](dimensions) ;
hauteur = new JMenuItem("Hauteur") ;
[Link](hauteur) ;
[Link]() ;
largeur = new JMenuItem("Largeur") ;
[Link](largeur) ;
}
}

Page 24
Interface graphique Les menus et les barres d'outils

public class MonMenu {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ;
}
}

Page 25
Interface graphique Les menus et les barres d'outils

b. Les différentes sortes d'options


Les options de type JMenuItem sont les options les plus
courantes dans un menu, mais il existe deux autres types
d'options : des options cases à cocher de type
JCheckBoxMenuItem et des options boutons radio de type
JRadioButtonMenuItem.
Exemple
JMenuBar barreMenus = new JMenuBar() ;
setJMenuBar(barreMenus) ;
//création d'un menu Couleur et de son groupe de deux
options Rouge et Vert
JMenu couleur = new JMenu("Couleur") ;
[Link](couleur) ;
JRadioButtonMenuItem rouge = new
JRadioButtonMenuItem("Rouge") ;
JRadioButtonMenuItem vert = new
JRadioButtonMenuItem("Vert") ;
[Link](rouge) ; [Link](vert) ;
ButtonGroup groupe = new ButtonGroup() ;
[Link](rouge) ; [Link](vert) ;
//les options boutons radio sont placées dans un groupe de
type ButtonGroup afin d'assurer l'unicité de la sélection à
l'intérieur du groupe (cf paragraphe I.5.2.)
//création d'un menu Formes et de ses cases à cocher
Rectangle et Ovale
JMenu formes = new JMenu("Formes") ;
[Link](formes) ;
JCheckBoxMenuItem rectangle = new
JCheckBoxMenuItem("Rectangle") ;
JCheckBoxMenuItem ovale = new
JCheckBoxMenuItem("Ovale") ;
[Link](rectangle) ; [Link](ovale) ;

Page 26
Interface graphique Les menus et les barres d'outils

La méthode isSelected de la classe AbstractButton permet de


savoir si une option est sélectionnée. Elle retourne true si
l'option est sélectionnée, false sinon.

Page 27
Interface graphique Les menus et les barres d'outils

c. Composition des options

Jusqu'à présent, un menu était formé d'une simple liste


d'options. En fait, une option peut à son tour faire apparaître
une liste de sous-options. Pour ce faire, il suffit d'utiliser dans
un menu une option de type JMenu (et non plus de type
JMenuItem). Cette démarche peut être répétée autant de fois
que voulu.
Exemple
JMenuBar barreMenus = new JMenuBar() ;
setJMenuBar(barreMenus) ;
//création d'un menu Formes composé d'une option Arrondi
composée elle même de deux options Cercle et Ovale, et,
d'une option Rectangle
JMenu formes = new JMenu("Formes") ;
[Link](formes) ;
JMenu arrondi = new JMenu("Arrondi") ;
[Link](arrondi) ;
JMenuItem cercle = new JMenuItem("Cercle") ;
[Link](cercle) ;
JMenuItem ovale = new JMenuItem("Ovale") ;
[Link](ovale) ;
JMenuItem rectangle = new JMenuItem("Rectangle") ;
[Link](rectangle) ;

Page 28
Interface graphique Les menus et les barres d'outils

Les barres d'outils


Une barre d'outils de type JToolBar est un ensemble de
boutons regrouper linéairement sur un des bords de la fenêtre.
En général, ces boutons comportent plutôt des icônes que des
libellés.
Exemple
class MaFenetre extends JFrame {
JToolBar barreOutils ;
JButton boutonRouge, boutonVert ;
public MaFenetre () {
super("Une fenetre avec une barre d'outils") ;
setSize(300, 200) ;
//création d'une barre d'outils composée de deux
boutons: un bouton Rouge et un bouton Vert
barreOutils = new JToolBar() ;
boutonRouge = new JButton("Rouge") ;
[Link](boutonRouge) ;
boutonVert = new JButton("Vert") ;
[Link](boutonVert) ;
getContentPane().add(barreOutils) ; }
}

Par défaut, une barre d'outils est flottante, c'est à dire qu'on
peut la déplacer d'un bord à un autre de la fenêtre, ou à
l'intérieur de la fenêtre. On peut interdire à une barre d'outils de
flotter grâce à la méthode setFloatable.
Exemple
[Link](false) ;

Page 29
Interface graphique Les menus et les barres d'outils

Un bouton peut être créé avec une icône de type ImageIcon


(classe du paquetage [Link] dérivée de la classe Object)
au lieu d'un texte.
Exemple
JToolBar barreOutils = new JToolBar() ;
ImageIcon iconeVert = new ImageIcon("[Link]") ;
//création d'une icône à partir d'un fichier "[Link]"
contenant un dessin d'un carré de couleur vert
JButton boutonVert = new JButton(iconeVert) ;
[Link](boutonVert) ;

Page 30
Interface graphique Les menus et les barres d'outils

Les bulles d'aide


Une bulle d'aide est un petit rectangle (nommé "tooltip" en
anglais) contenant un bref texte explicatif qui apparaît lorsque
la souris est laissée un instant sur un composant (boutons,
menus, …). Java permet d'obtenir un tel affichage pour
n'importe quel composant grâce à la méthode setToolTipText
de la classe JComponent.
Exemple
barreMenus = new JMenuBar() ;
setJMenuBar(barreMenus) ;
//création d'un menu Couleur et de ses options Rouge et
Vert
couleur = new JMenu("Couleur") ;
[Link](couleur) ;
rouge = new JMenuItem("Rouge") ;
[Link]("fond rouge") ;
[Link](rouge) ;
[Link]() ;
vert = new JMenuItem("Vert") ;
[Link]("fond vert") ;
[Link](vert) ;

Page 30
Interface graphique Les boîtes de dialogue

Les boîtes de dialogue


La boîte de dialogue est un conteneur. Elle permet de regrouper
n'importe quels composants dans une sorte de fenêtre qu'on fait
apparaître ou disparaître.

Java propose un certain nombre de boîtes de dialogue standard


obtenues à l'aide de méthodes de classe de la classe
JOptionPane : boîtes de message, boîtes de confirmation,
boîtes de saisie et boîtes d'options. La classe JDialog permet de
construire des boîtes de dialogue personnalisées.

[Link]
|
+--[Link]*
|
+--[Link]*
|
+--[Link]
|
+--[Link]
|
+--[Link] boîte de dialogue personnalisée
|
+--[Link]*
|
+--[Link] boîte de dialogue standard

Page 31
Interface graphique Les boîtes de dialogue

Les boîtes de message


Une boîte de message fournit à l'utilisateur un message qui reste
affiché tant que l'utilisateur n'agit pas sur le bouton OK. Elle est
construite à l'aide de la méthode de classe
showMessageDialog de la classe JOptionPane.
Exemple
import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ; }
}

public class BoiteMess {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ;
[Link](fen, "Bonjour") ;
//le premier argument de la méthode
showMessageDialog correspond à la fenêtre parent
de la boîte de message, c'est à dire la fenêtre dans
laquelle la boîte de message va s'afficher. Cet
argument peut prendre la valeur null.
}
}

Dans l'exemple précédent, nous n'avons défini que le contenu


du message. Il existe une variante de la méthode
showMessageDialog qui permet aussi de choisir le titre de la

Page 32
Interface graphique Les boîtes de dialogue

boîte et le type d'icône parmi la liste suivante (les paramètres


sont des constantes entières de la classe JOptionPane).
Paramètre Type d'icône
JOptionPane.ERROR_MESSAGE Erreur
JOptionPane.INFORMATION_MESSAGE Information
JOptionPane.WARNING_MESSAGE Avertissement
JOptionPane.QUESTION_MESSAGE Question
JOptionPane.PLAIN_MESSAGE Aucune icône

Exemple
[Link](fen, "Mauvais
choix", "Message d'avertissement",
JOptionPane.ERROR_MESSAGE) ;

Page 33
Interface graphique Les boîtes de dialogue

Les boîtes de confirmation


Une boîte de confirmation offre à l'utilisateur un choix de type
oui/non. Elle est construite à l'aide de la méthode de classe
showConfirmDialog de la classe JOptionPane.
Exemple
import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ; }
}

public class BoiteConf {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ;
[Link](fen, "Voulez-vous
continuer ?") ;
}
}

Dans l'exemple précédent, nous n'avons défini que la question


posée à l'utilisateur. Il existe une variante de la méthode
showConfirmDialog qui permet aussi de choisir le titre de la
boîte et la nature des boutons qui s'y trouvent parmi la liste
suivante (les paramètres sont des constantes entières de la
classe JOptionPane).

Page 34
Interface graphique Les boîtes de dialogue

Paramètre Type de boîte


JOptionPane.DEFAULT_OPTION (-1) Erreur
JOptionPane.YES_NO_OPTION (0) boutons YES et
NO
JOptionPane.YES_NO_CANCEL_OPTION boutons YES,
(1) NO et CANCEL
JOptionPane.OK_CANCEL_OPTION (2) boutons OK et
CANCEL

Exemple
[Link](fen, "Voulez-vous
continuer ?", "Incident majeur",
JOptionPane.YES_NO_OPTION) ;

La valeur de retour de la méthode showConfirmDialog précise


l'action effectuée par l'utilisateur sous la forme d'un entier ayant
comme valeur l'une des constantes suivantes de la classe
JOptionPane :
YES_OPTION (0),
OK_OPTION (0),
NO_OPTION (1),
CANCEL_OPTION (2),
CLOSED_OPTION (-1).

Page 35
Interface graphique Les boîtes de dialogue

Les boîtes de saisie


Une boîte de saisie permet à l'utilisateur de fournir une
information sous la forme d'une chaîne de caractères. Elle est
construite à l'aide de la méthode de classe showInputDialog de
la classe JOptionPane.
Exemple
import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ; }
}

public class BoiteSaisie {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ;
[Link] (fen, "Donnez un
texte") ;
}
}

La valeur de retour de la méthode showInputDialog est soit un


objet de type String contenant le texte fournit par l'utilisateur,
soit la valeur null si l'utilisateur n'a pas confirmé sa saisie par le
bouton OK.

Page 36
Interface graphique Les boîtes de dialogue

Dans l'exemple précédent, nous n'avons défini que la question


posée à l'utilisateur. Il existe une variante de la méthode
showInputDialog qui permet aussi de choisir le titre de la boîte
et le type d'icône (suivant les valeurs fournies au paragraphe
I.7.1.).
Exemple
[Link](fen, "Entrez votre nom",
"Controle d'identite",
JOptionPane.WARNING_MESSAGE) ;

Page 37
Interface graphique Les boîtes de dialogue

Les boîtes d'options


Une boîte d'options permet à l'utilisateur de choisir une valeur
parmi une liste de valeurs, par l'intermédiaire d'une boîte
combo. Elle est construite à l'aide de la méthode de classe
showInputDialog de la classe JOptionPane.
Exemple
import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ; }
}

public class BoiteOptions {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ;
String[] couleurs = {"rouge", "bleu", "gris", "vert",
"jaune", "noir"};
[Link] (fen, "Choisissez
une couleur",
"Boite d'options", //titre de la boîte
JOptionPane.QUESTION_MESSAGE,
//type d'icône suivant les valeurs du paragraphe I.7.1.
null,
//icône supplémentaire (ici aucune)
couleurs,
//liste de valeurs représentée dans la boîte combo
couleurs[1]) ;
//valeur sélectionnée par défaut
}
}

Page 38
Interface graphique Les boîtes de dialogue

La valeur de retour de la méthode showInputDialog est soit un


objet de type Object contenant la valeur sélectionnée par
l'utilisateur, soit la valeur null si l'utilisateur n'a pas confirmé sa
saisie par le bouton OK.

Page 39
Interface graphique Les boîtes de dialogue

Les boîtes de dialogue personnalisées


La classe JDialog permet de créer ses propres boîtes de
dialogue.

import [Link].* ; import [Link].* ;

class MaFenetre extends JFrame {


public MaFenetre () {
super("Une fenetre") ;
setSize(300, 200) ; }
}

class MonDialog extends JDialog {


private JButton MonBouton ;
private JTextField MonChamp ;
public MonDialog (JFrame fen) {
super(fen, //fenêtre parent
"Mon dialogue", //titre
true) ; //boîte modale : l'utilisateur ne peut agir que
sur les composants de la boîte de dialogue et
ceci tant qu'il n'a pas mis fin au dialogue
setSize(200, 100) ;
//il est nécessaire d'attribuer une taille à une boîte de
dialogue avant de l'afficher
MonBouton = new JButton("Un bouton") ;
MonChamp = new JTextField(10) ;
Container contenu = getContentPane() ;
[Link](new FlowLayout()) ;
//un objet de type FlowLayout est un gestionnaire de
mise en forme qui dispose les composants les uns à la
suite des autres
[Link](MonBouton); [Link](MonChamp) ;
//ajout d'un bouton et d'un champ de texte dans la boîte
de dialogue
}
}

Page 40
Interface graphique Les boîtes de dialogue

public class MonProgBoiteDialogPers {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ;
JDialog bd = new MonDialog(fen) ;
[Link](true) ;
// affiche la boîte de dialogue de référence bd
}
}

Page 41
Interface graphique Les gestionnaires de mise en forme

Les gestionnaires de mise en forme


Pour chaque conteneur (fenêtre, boîte de dialogue, …), Java
permet de choisir un gestionnaire de mise en forme (en anglais
"Layout manager") responsable de la disposition des
composants.

Les gestionnaires de mise en forme proposés par Java sont les


gestionnaires BorderLayout, FlowLayout, CardLayout,
GridLayout, BoxLayout et GridBagLayout. Ce sont tous des
classes du paquetage [Link] dérivées de la classe Object et
qui implémentent l'interface LayoutManager.

La méthode setLayout de la classe Container permet


d'associer un gestionnaire de mise en forme à un conteneur. Le
gestionnaire BorderLayout est le gestionnaire par défaut des
fenêtres et des boîtes de dialogue.
Exemple
import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


public MaFenetre () {
super("Une fenetre") ;
setSize(300, 200) ;
getContentPane().setLayout(new FlowLayout()) ;
//changement de gestionnaire de mise en forme
}
}
public class MonProgLayout {
public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ; }
}

Page 42
Interface graphique Les gestionnaires de mise en forme

Le gestionnaire BorderLayout
Le gestionnaire de mise en forme BorderLayout permet de
placer chaque composant dans une zone géographique.

L'emplacement d'un composant est choisi en fournissant en


argument de la méthode add de la classe Container l'une des
constantes entières suivantes (on peut utiliser indifféremment le
nom de la constante ou sa valeur) :
Constante symbolique Valeur
[Link] "North"
[Link] "South"
[Link] "East"
[Link] "West"
[Link] "Center"
Si aucune valeur n'est précisée à la méthode add, le composant
est placé au centre.

La classe BorderLayout dispose de deux constructeurs :


public BorderLayout() ;
public BorderLayout(int hgap, int vgap) ;
//hgap et vgap définissent respectivement l'espace
horizontal et l'espace vertical (en nombre de pixels) entre
les composants d'un conteneur. Par défaut, les composants
sont espacés de 5 pixels.

Exemple
import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ;
Container contenu = getContentPane() ;
[Link](new BorderLayout()) ; //inutile
[Link](new JButton("UN")) ;
//bouton placé au centre par défaut

Page 43
Interface graphique Les gestionnaires de mise en forme

[Link](new JButton("DEUX"), "North") ;


[Link](new JButton("TROIS"), "South") ;
[Link](new JButton("QUATRE"), "West") ;
[Link](new JButton("CINQ"), "East") ;
}
}

public class MonProgBLayout {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ;
}
}

Le gestionnaire de mise en forme BorderLayout ne tient


pas compte de la taille souhaitée des composants, qui peut
être imposée par la méthode setPreferredSize de la classe
JComponent (cf. paragraphe VII.5.).

Page 44
Interface graphique Les gestionnaires de mise en forme

Le gestionnaire FlowLayout
Le gestionnaire de mise en forme FlowLayout permet de
disposer les composants les uns à la suite des autres, de gauche
à droite.

La classe FlowLayout dispose de trois constructeurs :


public FlowLayout() ;
public FlowLayout(int align) ;
//align est un paramètre d'alignement d'une ligne de
composants par rapport aux bords verticaux de la fenêtre.
Ce paramètre peut prendre ses valeurs parmi les
constantes entières suivantes (on peut utiliser
indifféremment le nom de la constante ou sa valeur) :
[Link]("Left"), [Link]("Right")
ou [Link]("Center"). Par défaut les
composants sont alignés au centre.
public FlowLayout(int align, int hgap, int vgap) ;
//hgap et vgap définissent les espaces entre les
composants.

Exemple
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ;
Container contenu = getContentPane() ;
[Link](new FlowLayout()) ;
//changement de gestionnaire de mise en forme
[Link](new JButton("UN")) ;
[Link](new JButton("DEUX")) ;
}
}

Page 45
Interface graphique Les gestionnaires de mise en forme

Le gestionnaire de mise en forme FlowLayout tient compte,


dans la mesure du possible, de la taille souhaitée des
composants, qui peut être imposée par la méthode
setPreferredSize de la classe JComponent.

Page 46
Interface graphique Les gestionnaires de mise en forme

Le gestionnaire GridLayout
Le gestionnaire de mise en forme GridLayout permet de
disposer les composants les uns à la suite des autres sur une
grille régulière, chaque composant occupant une cellule de la
grille.

La classe GridLayout dispose de deux constructeurs :


public GridLayout(int rows, int cols) ;
//rows et cols définissent respectivement le nombre de
lignes et de colonnes de la grille.
public GridLayout(int rows, int cols, int hgap, int vgap) ;
//hgap et vgap définissent les espaces entre les
composants.

Les dernières cases d'une grille peuvent rester vides. Toutefois,


si plus d'une ligne de la grille est vide, le gestionnaire
réorganisera la grille, de façon à éviter une perte de place.

Exemple
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ;
Container contenu = getContentPane() ;
[Link](new GridLayout(2, 2)) ;
//changement de gestionnaire de mise en forme
[Link](new JButton("UN")) ;
[Link](new JButton("DEUX")) ;
[Link](new JButton("TROIS")) ;
[Link](new JButton("QUATRE")) ;
}
}

Page 47
Interface graphique Les gestionnaires de mise en forme

Le gestionnaire de mise en forme BoxLayout permet de


disposer des composants suivant une même ligne ou une même
colonne, mais avec plus de souplesse que le gestionnaire
GridLayout.

Le gestionnaire de mise en forme GridBagLayout, comme le


gestionnaire GridLayout, permet de disposer les composants
suivant une grille, mais ceux-ci peuvent occuper plusieurs
cellules ; en outre, la taille des cellules peut être modifiée au
cours de l'exécution.

Page 48
Interface graphique Les gestionnaires de mise en forme

Un programme sans gestionnaire de


mise en forme
Il est possible de n'associer aucun gestionnaire de mise en
forme à un conteneur. Les composants sont alors ajoutés au
conteneur à l'aide de la méthode setBounds de la classe
Component.
Exemple
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ;
Container contenu = getContentPane() ;
[Link](null) ;
//changement de gestionnaire de mise en forme
JButton bouton1 = new JButton("UN") ;
[Link](bouton1) ;
[Link](40, 40, 80, 30) ;
//le coin supérieur gauche du bouton est placé au pixel
de coordonnées 40, 40 par rapport au coin supérieur
gauche de la fenêtre et les dimensions du bouton sont
de 80 * 30 pixels
}
}

Page 50
La gestion des événements Introduction

Exercice récapitulatif

Créer le formulaire ci-dessous

Page 51
La gestion des événements Introduction

II. La gestion des événements

Introduction
Un clic souris, la frappe d’une touche au clavier ou le
changement de la taille d’une fenêtre sont des exemples
d’événements.

Java classe les événements en deux niveaux : les événements


de bas niveau (par exemple, un clic dans une fenêtre) et les
événements de haut niveau (par exemple, une action sur un
bouton qui peut provenir d’un clic souris ou d’une frappe au
clavier).

En Java, les événements n’ont pas une valeur physique, mais


logique. Un événement dépend du composant qui l’a généré.
On appelle source d’un événement l’objet qui l’a généré.
Exemple
L’événement émis suite à un clic souris dans une fenêtre est
de type MouseEvent. .
L’événement émis suite à un clic souris sur un bouton est de
type ActionEvent. .. .

Tout événement qui peut se produire dans une interface


graphique est de type XXXEvent, classe du paquetage
[Link] ou du paquetage [Link] dérivée
de la classe EventObject (classe du paquetage [Link] dérivée
de la classe Object). ..

Afin d’éviter d’avoir à s’interroger sur la répartition dans


les paquetages des différentes classes utilisées dans les
interfaces graphiques, nous importerons systématiquement
toutes les classes des paquetages [Link], [Link],
[Link] et [Link].

Page 52
La gestion des événements Traiter un événement

Traiter un événement
Un composant ne traite pas forcément lui même les événements
qu’il génère. Il délègue ce traitement à des objets particuliers
appelés écouteurs (un composant peut être son propre
écouteur).

En fonction des événements qu’ils traitent, un écouteur doit


implémenter une interface particulière, dérivée de l’interface
EventListener, qui correspond à une catégorie d’événements.
Pour traiter un événement de type XXXEvent, un écouteur doit
implémenter l’interface XXXListener.
Exemple
L’interface MouseListener correspond à une catégorie
d’événements souris de type MouseEvent. Elle comporte
cinq méthodes correspondant chacune à un événement souris
particulier..
public interface MouseListener extends EventListener {
public void mousePressed(MouseEvent e) ;
//appelé lorsqu’un bouton de la souris est pressé sur un
composant
//l’argument e de type MouseEvent correspond à
l’objet événement généré
public void mouseReleased(MouseEvent e) ;
//appelé lorsqu’un bouton de la souris est relâché sur un
composant
public void mouseClicked(MouseEvent e) ;
//appelé lors d’un clic souris sur un composant (la souris
n’a pas été déplacée entre l’appui et le relâchement du
bouton)
public void mouseEntered(MouseEvent e) ;
//appelé lorsque la souris passe de l’extérieur à
l’intérieur d’un composant
public void mouseExited(MouseEvent e) ; }
//appelé lorsque la souris sort d’un composant (la souris
passe de l’intérieur à l’extérieur du composant)

Page 53
La gestion des événements Intercepter un événement

Intercepter un événement
Lorsqu’un composant veut intercepter un événement de type
XXXEvent, il doit le préciser dans son constructeur en appelant
la méthode addXXXListener(XXXListener objetEcouteur),
où l’argument objetEcouteur correspond à l’objet écouteur
chargé de traiter l’événement.

Pour savoir quels événements sont susceptibles d’être générés


par un composant donné, il faut rechercher toutes les méthodes
de la forme addXXXListener définies dans la classe du
composant et dans ses classes ascendantes.
Exemple
La classe Component définit notamment les méthodes
suivantes :
public void addFocusListener(FocusListener l) ;
//prise et perte du focus (à un moment donné, un seul
composant est sélectionné, on dit qu’il a le focus)
public void addKeyListener(KeyListener l) ;
//événements clavier
public void addMouseListener(MouseListener l) ;
//événements souris
public void addMouseMotionListener
(MouseMotionListener l) ;
//événements liés au déplacement de la souris

Page 54
La gestion des événements Un premier exemple

Un premier exemple

Première version
import [Link].* ; import [Link].* ;
import [Link].* ; import [Link].* ;

class MaFenetre extends JFrame {


public MaFenetre () {
super("Une fenetre qui traite les clics souris") ;
setSize(300, 200) ;
addMouseListener(new EcouteurSouris());
//la fenêtre fait appel à un écouteur d’événements souris
pour traiter les clics souris
}
}

//L’écouteur d’événements souris doit implémenter l’interface


MouseListener qui correspond à une catégorie
d’événements souris.
class EcouteurSouris implements MouseListener {
//redéfinition de la méthode appelée lors d’un clic souris
public void mouseClicked(MouseEvent e) {
[Link]("clic dans la fenetre"); }
//la redéfinition des autres méthodes est "vide"
public void mousePressed(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }
}

public class MonProgEvtClic1 {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ; }
}

Page 55
La gestion des événements Un premier exemple

Deuxième version
import [Link].* ; import [Link].* ;
import [Link].* ; import [Link].* ;

class MaFenetre extends JFrame implements


MouseListener {
public MaFenetre () {
super("Une fenetre qui traite les clics souris") ;
setSize(300, 200) ;
addMouseListener(this);
//la fenêtre est son propre écouteur d’événements souris
}
//L’argument e de type MouseEvent correspond à l’objet
événement généré dans la fenêtre lors d’un clic souris. On
peut utiliser les informations qui lui sont associées.
public void mouseClicked(MouseEvent e) {
int x = [Link]() ;
int y = [Link]() ;
//coordonnées du curseur de la souris au moment du clic
[Link]("clic dans la fenetre au point de
coordonnees " + x + ", " + y);
}
public void mousePressed(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }
}

public class MonProgEvtClic2 {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ;
}
}

Page 56
La gestion des événements La notion d’adaptateur

La notion d’adaptateur
Pour chaque interface XXXListener possédant plusieurs
méthodes, Java fournit une classe particulière XXXAdapter,
appelée adaptateur, qui implémente toutes les méthodes de
l’interface avec un corps vide.

Pour définir un écouteur d’événements de type XXXEvent, il


suffit alors de dériver l'écouteur de la classe XXXAdapter et de
redéfinir uniquement les méthodes voulues.

Exemple
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre qui traite les clics souris") ;
setSize(300, 200) ;
addMouseListener(new EcouteurSouris());
}
}

class EcouteurSouris extends MouseAdapter {


//redéfinition uniquement de la méthode appelée lors
d’un clic souris
public void mouseClicked(MouseEvent e) {
[Link]("clic dans la fenetre") ;
}
}

Page 57
La gestion des événements Récapitulons

Récapitulons
Pour traiter un événement de type inconnu (par exemple la
fermeture d’une fenêtre) généré par une source, les étapes à
suivre sont :

Rechercher les méthodes de la forme addXXXListener


définies dans la classe de la source ou une de ses classes
ascendantes.

Identifier l’interface XXXListener qui convient en regardant


ses méthodes ; ce qui permet d’identifier le type
XXXEvent de l’événement à traiter.
Exemple
L’interface WindowListener définit la méthode
windowClosing appelée lors de la fermeture d’une
fenêtre (la méthode addWindowListener est une
méthode de la classe Window, classe ascendante de la
classe JFrame).

Définir un écouteur pour traiter l’événement.


L’objet source est son propre écouteur, il doit
implémenter l’interface XXXListener adéquate.
L’écouteur est une classe indépendante qui implémente
l’interface XXXListener adéquate.
L’écouteur est une classe indépendante qui dérive de la
classe XXXAdapter associée à l’interface
XXXListener adéquate.

Implémenter la ou les méthodes de l’interface XXXListener


qui nous intéressent. Les informations contenues dans
l’événement passé en paramètre de ces méthodes pourront
être exploitées.
Exemple
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre qui gere sa fermeture") ;

Page 58
La gestion des événements Récapitulons

setSize(300, 200) ;
addWindowListener(new EcouteurFermer());
}
}

class EcouteurFermer extends WindowAdapter {


public void windowClosing(WindowEvent e) {
[Link](0);
}
}

Page 70
La gestion des événements Un exemple avec des boutons

Un exemple avec des boutons


Un bouton ne peut déclencher qu’un seul événement de type
ActionEvent. L’interface ActionListener ne comporte qu’une
seule méthode actionPerformed.

import [Link].* ; import [Link].* ;


import [Link].* ; import [Link].* ;

class MaFenetre extends JFrame implements


ActionListener {
private JButton MonBouton1, MonBouton2 ;
public MaFenetre () {
super("Une fenetre avec deux boutons") ;
setSize(300, 200) ;
Container contenu = getContentPane() ;
MonBouton1 = new JButton("Bouton 1") ;
[Link](MonBouton1) ;
MonBouton2 = new JButton("Bouton 2") ;
[Link](MonBouton2) ;
//un même événement peut être traité par plusieurs
écouteurs : deux écouteurs sont associés à l’action de
l’utilisateur sur le bouton MonBouton1
[Link](this);
//gère l’action de l’utilisateur sur le bouton
MonBouton1
[Link](new EcouteurFermer());
//gère la fermeture de la fenêtre lors d’une action de
l’utilisateur sur le bouton MonBouton1
[Link](this);
//gère l’action de l’utilisateur sur le bouton
MonBouton2
}
public void actionPerformed(ActionEvent e) {
//utilisation de la méthode getSource de la classe
EventObject qui fournit une référence de type Object sur
la source de l’événement concerné

Page 71
La gestion des événements Un exemple avec des boutons

if([Link]() == MonBouton1)
//conversion implicite du type JButton en un type
ascendant Object
[Link]("action sur le bouton 1") ;
if([Link]() == MonBouton2)
[Link]("action sur le bouton 2") ;
}
}

class EcouteurFermer implements ActionListener {


public void actionPerformed(ActionEvent e) {
[Link](0);
}
}

public class MonProgEvtBouton1 {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ; }
}

La méthode getSource de la classe EventObject permet


d’identifier la source d’un événement. Elle s’applique à tous les
événements générés par n’importe quel composant.

La méthode getActionCommand de la classe ActionEvent


permet d’obtenir la chaîne de commande associée à la source
d’un événement. Les composants qui disposent d’une chaîne de
commande sont les boutons, les cases à cocher, les boutons
radio et les options menu. Par défaut, la chaîne de commande
associée à un bouton est son étiquette.
Exemple
La méthode actionPerformed de la classe MaFenetre peut
s’écrire :
public void actionPerformed(ActionEvent e) {
String nom = [Link]() ;
[Link]("action sur le " + nom) ;}

Page 72
La gestion des événements Un exemple avec des boutons

La méthode setActionCommand de la classe JButton permet


d’associer une autre chaîne de commande à un bouton.
Exemple
[Link] ("premier bouton").

Page 73
La gestion des événements Un exemple de création dynamique
de boutons

Un exemple de création dynamique de


boutons
Jusqu’à présent, les composants d’un conteneur étaient créés en
même temps que le conteneur et restaient affichés en
permanence. Cependant, on peut, à tout moment, ajouter un
nouveau composant à un conteneur (grâce à la méthode add de
la classe Container) ou supprimer un composant d’un
conteneur (grâce à la méthode remove de la classe Container).
Si l’une de ses opérations est effectuée après l’affichage du
conteneur, il faut forcer le gestionnaire de mise en forme à
recalculer les positions des composants du conteneur (1) soit en
appelant la méthode validate (de la classe Component) du
conteneur, (2) soit en appelant la méthode revalidate (de la
classe JComponent) des composants du conteneur.

import [Link].* ;
import [Link].* ;
import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


private JButton MonBouton ;
public MaFenetre () {
super("Une fenetre avec des boutons dynamiques") ;
setSize(300, 200) ;
Container contenu = getContentPane() ;
[Link](new FlowLayout()) ;
MonBouton = new JButton("Creation de boutons") ;
[Link](MonBouton) ;
[Link](new EcouteurBouton
(contenu)) ;
}

Page 74
La gestion des événements Un exemple de création dynamique
de boutons
class EcouteurBouton implements ActionListener {
private Container contenu ;
public EcouteurBouton (Container contenu) {
[Link] = contenu ; }
public void actionPerformed(ActionEvent e) {
JButton NvBouton = new JButton("Bouton") ;
[Link](NvBouton) ;
[Link]() ;
//recalcul les positions des composants du conteneur
}
}

public class MonProgEvtBouton2 {


public static void main(String args[]) {
JFrame fen = new MaFenetre() ;
[Link](true) ;
}
}

Page 75
La gestion des événements Les classes internes et anonymes

Les classes internes et anonymes


Les classes internes et les classes anonymes sont souvent
utilisées dans la gestion des événements des interfaces
graphiques.

Les classes internes


Une classe est dite interne lorsque sa définition est située à
l'intérieure d'une autre classe (ou d'une méthode).
Exemple
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre qui gere sa fermeture") ;
setSize(300, 200) ;
addWindowListener(new EcouteurFermer());
}
//classe interne à la classe MaFenetre
class EcouteurFermer extends WindowAdapter {
public void windowClosing(WindowEvent e) {
[Link](0); }
} //fin classe interne
}

Un objet d'une classe interne est toujours associé, au moment


de son instanciation, à un objet d'une classe externe dont on dit
qu'il lui a donné naissance.
Un objet d'une classe interne a toujours accès aux champs et
méthodes (même privés) de l'objet externe lui ayant donné
naissance.
Un objet d'une classe externe a toujours accès aux champs et
méthodes (même privés) de l'objet interne auquel il a donné
naissance.

Exemple

Page 76
La gestion des événements Les classes internes et anonymes

import [Link].* ; import [Link].* ;


import [Link].* ; import [Link].* ;

class Cercle {
private Centre c ;
private double r ;
class Centre { //classe interne à la classe Cercle
private int x, y ;
public Centre(int x, int y) {
this.x = x ; this.y = y ; }
public void affiche() {
[Link]("( " + x + ", " + y + ")") ; }
} //fin classe interne
public Cercle(int x, int y, double r) {
c = new Centre(x, y) ;
//création d'un objet de type Centre, associé à l'objet
de type Cercle lui ayant donné naissance (celui qui a
appelé le constructeur)
this.r = r ; }
public void affiche() {
[Link]("Cercle de rayon " + r + " et de
centre ") ;
[Link]() ; } // méthode affiche de la classe Centre
public void deplace(int dx, int dy) {
c.x += dx ; c.y += dy ; }
//accès aux champs privés x et y de la classe Centre
}

public class MonProgCercle {


public static void main(String args[]) {
Cercle c1 = new Cercle(1, 3, 2.5) ; [Link]() ;
[Link](4, -2) ; [Link]() ; }
}

Cercle de rayon 2.5 et de centre (1, 3)


Cercle de rayon 2.5 et de centre (5, 1)

Page 77
La gestion des événements Les classes internes et anonymes

Les classes anonymes


Une classe anonyme est une classe sans nom. Elle peut dériver
d'une autre classe.
Exemple
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre qui gere sa fermeture") ;
setSize(300, 200) ;
addWindowListener(new WindowAdapter() {
//classe anonyme dérivant de la classe
WindowAdapter
public void windowClosing(WindowEvent e) {
[Link](0); }
}) ; //fin classe anonyme
}
}

Une classe anonyme peut également implémenter une interface.


Exemple
class MaFenetre extends JFrame {
private JButton UnBouton ;
public MaFenetre () {
super("Une fenetre avec un bouton") ;
setSize(300, 200) ;
UnBouton = new JButton("Un bouton") ;
getContentPane().add(UnBouton) ;
[Link](new ActionListener(){
//classe anonyme implémentant l'interface
ActionListener
public void actionPerformed(ActionEvent e) {
[Link](0); }
}); //fin classe anonyme
}
}
}

Page 78
Bibliographie

Bibliographie

Claude Delannoy. Programmer en Java. Eyrolles, 2000.

Cay S. Horstmann et Gary Cornell. Au cœur de Java 2. Volume II :


Fonctions avancées. CampusPress France, 2000.

Gilles Clavel, Nicolas Mirouze, Emmanuel Pichon et Mohamed


Soukal. Java, la synthèse. InterEditions, 1997.

Laura Lemay et Charles L. Perkins. Le programmeur Java. Simon &


Schuster Macmillan (France), 1996.

http ://[Link]

Page 79
Index

Index

C
classe
ActionEvent.........................................................................................................................................63, 72, 73
BorderLayout................................................................................................................. ........................... 42, 43
BoxLayout .......................................................................................................................................................49
ButtonGroup ................................................................................................................. ............................ 12, 24
CardLayout ......................................................................................................................................................47
Color ................................................................................................................................................................58
Component................................................................................................................................................. . 8, 66
Container ................................................................................................................. ..........................5, 7, 42, 51
Dimension ......................................................................................................................................................... 9
EventObject ................................................................................................................. ............................. 63, 73
FlowLayout............................................................................................................................................... 45, 54
Font ..................................................................................................................................................................59
Graphics..................................................................................................................... ............................... 55, 57
GridBagLayout ................................................................................................................................................49
GridLayout.......................................................................................................................................................48
Image ...............................................................................................................................................................61
ImageIcon ................................................................................................................... .............................. 29, 61
Insets ................................................................................................................................................................51
JButton.............................................................................................................................................5, 10, 72, 74
JCheckBox .......................................................................................................................................................11
JCheckBoxMenuItem ......................................................................................................................................24
JComboBox .....................................................................................................................................................18
JComponent .....................................................................................................................................................10
JDialog...................................................................................................................................................... 31, 40
JFrame ...................................................................................................................... ................................ 5, 6, 7
JLabel ..............................................................................................................................................................14
JList .................................................................................................................................................................16
JMenu ....................................................................................................................... ...........................21, 22, 26
JMenuBar.................................................................................................................................................. 21, 22
JMenuItem.................................................................................................................... .................21, 22, 24, 26
JOptionPane .................................................................................................................................................... 31
JPanel....................................................................................................................... ................................. 53, 54
JPopupMenu ................................................................................................................................................... 27
JRadioButton .................................................................................................................................................. 12
JRadioButtonMenuItem .................................................................................................................................. 24
JScrollPane ..................................................................................................................................................... 17
JTextField ....................................................................................................................................................... 15
JToolBar ......................................................................................................................................................... 28
MouseEvent .................................................................................................................................................... 63
URL ................................................................................................................................................................ 61
classe (interface graphique)
ActionEvent.................................................................................................................. .......................63, 72, 73
BorderLayout...................................................................................................................... ...................... 42, 43
BoxLayout ...................................................................................................................................................... 49
ButtonGroup ............................................................................................................................................. 12, 24
CardLayout ..................................................................................................................................................... 47
Color ............................................................................................................................................................... 58
Component.................................................................................................................... .............................. 8, 66
Container ................................................................................................................... ........................5, 7, 42, 51
Dimension ......................................................................................................................................................... 9

Page 80
Index
EventObject .............................................................................................................................................. 63, 73
FlowLayout................................................................................................................... ............................ 45, 54
Font ..................................................................................................................................................................59
Graphics........................................................................................................................ ............................ 55, 57
GridBagLayout ................................................................................................................................................49
GridLayout.......................................................................................................................................................48
Image ...............................................................................................................................................................61
ImageIcon ................................................................................................................................................. 29, 61
Insets ................................................................................................................................................................51
JButton...................................................................................................................... .......................5, 10, 72, 74
JCheckBox .......................................................................................................................................................11
JCheckBoxMenuItem ......................................................................................................................................24
JComboBox .....................................................................................................................................................18
JComponent .....................................................................................................................................................10
JDialog...................................................................................................................... ................................ 31, 40
JFrame ...................................................................................................................................................... 5, 6, 7
JLabel ..............................................................................................................................................................14
JList .................................................................................................................................................................16
JMenu ..................................................................................................................................................21, 22, 26
JMenuBar..................................................................................................................... ............................. 21, 22
JMenuItem............................................................................................................................ .........21, 22, 24, 26
JOptionPane .................................................................................................................................................... 31
JPanel........................................................................................................................................................ 53, 54
JPopupMenu ................................................................................................................................................... 27
JRadioButton .................................................................................................................................................. 12
JRadioButtonMenuItem .................................................................................................................................. 24
JScrollPane ..................................................................................................................................................... 17
JTextField ....................................................................................................................................................... 15
JToolBar ......................................................................................................................................................... 28
MouseEvent .................................................................................................................................................... 63
URL ................................................................................................................................................................ 61
classe anonyme ..................................................................................................................................................... 79
classe interne ......................................................................................................................................................... 77
contexte graphique ........................................................................................................................................ .. 55, 57
E
événement ............................................................................................................. .......................................... 63, 70
adaptateur........................................................................................................................................................ 69
écouteur .................................................................................................................... ................................ 65, 69
intercepter ....................................................................................................................................................... 66
source .............................................................................................................................................................. 63
traiter............................................................................................................................................................... 65
événement bouton
exemple...................................................................................................................... ............................... 72, 75
événement fenêtre
exemple ........................................................................................................................................................... 71
interface WindowListener ............................................................................................................................... 70
méthode addWindowListener(WindowListener) ............................................................................................ 70
méthode windowClosing(WindowEvent) ....................................................................................................... 70
événement souris
classe MouseEvent.......................................................................................................................................... 63
exemple............................................................................................................................ ....................67, 68, 69
interface MouseListener ................................................................................................................................. 65
méthode addMouseListener(MouseListener).................................................................................................. 66
G
gestionnaire de mise en forme ............................................................................................................................... 42
I
interface

Page 81
Index
ActionListener .................................................................................................................................................72
EventListener ...................................................................................................................................................65
ImageObserver .................................................................................................................................................61
LayoutManager ................................................................................................................................................42
MouseListener .................................................................................................................................................65
WindowListener ..............................................................................................................................................70
interface (interface graphique)
ActionListener .................................................................................................................................................72
EventListener ...................................................................................................................................................65
ImageObserver .................................................................................................................................................61
LayoutManager ................................................................................................................................................42
MouseListener .................................................................................................................................................65
WindowListener ..............................................................................................................................................70
M
méthode
actionPerformed(ActionEvent)................................................................................................. ................ 72, 73
add(Component) ....................................................................................................................................7, 43, 75
add(Component,int) ........................................................................................................................................ 43
add(Component,String) ....................................................................................................... ..................... 43, 47
addFocusListener(FocusListener) ................................................................................................................... 66
addItem(Object) .............................................................................................................................................. 19
addItemAt(Object,int) ..................................................................................................................................... 19
addKeyListener(KeyListener) ........................................................................................................................ 66
addMouseListener(MouseListener) ................................................................................................................ 66
addMouseMotionListener(MouseMotionListener) ......................................................................................... 66
addSeparator() ................................................................................................................................................ 22
addWindowListener(WindowListener) .......................................................................................................... 70
drawImage(Image,int,int,ImageObserver) ...................................................................................................... 61
drawLine(int,int,int,int) ................................................................................................... ......................... 55, 60
drawOval(int,int,int,int) .................................................................................................................................. 60
drawRect(int,int,int,int) .................................................................................................................................. 60
drawString(String,int,int) ................................................................................................................................ 60
getActionCommand() ..................................................................................................................................... 73
getColor()........................................................................................................................................................ 58
getContentPane() .......................................................................................................................................... 5, 7
getFont() ......................................................................................................................................................... 59
getImage() ....................................................................................................................................................... 61
getImage(String) ............................................................................................................................................. 61
getImage(URL) ............................................................................................................................................... 61
getInsets() ....................................................................................................................................................... 51
getSelectedIndex() .......................................................................................................................................... 19
getSelectedItem() ............................................................................................................................................ 19
getSelectedValue() .......................................................................................................................................... 17
getSelectedValues() ........................................................................................................................................ 17
getSize() ............................................................................................................................................................ 9
getSource()...................................................................................................................................................... 73
getText() ......................................................................................................................................................... 15
isEnabled() ........................................................................................................................................................ 8
isSelected() ..........................................................................................................................................11, 13, 25
mouseClicked(MouseEvent) ........................................................................................................................... 65
mouseEntered(MouseEvent) ........................................................................................................................... 65
mouseExited(MouseEvent) ............................................................................................................................. 65
mousePressed(MouseEvent) ........................................................................................................................... 65
mouseReleased(MouseEvent) ......................................................................................................................... 65
paintComponent(Graphics)......................................................................................................53, 55, 57, 58, 59
remove(Component)............................................................................................................ ....................... 7, 75
removeItem(Object) ........................................................................................................................................ 19
repaint() ................................................................................................................... ................................. 56, 62
revalidate() ...................................................................................................................................................... 75

Page 82
Index
setActionCommand(String) .............................................................................................................................74
setBackground(Color)....................................................................................................................................... 8
setBounds(int,int,int,int) .................................................................................................. ........................5, 9, 50
setColor(Color) ................................................................................................................................................58
setEditable(boolean) ........................................................................................................................................19
setEnabled(boolean) ................................................................................................................................... 8, 21
setFloatable(boolean) .......................................................................................................................................28
setFont(Font) ...................................................................................................................................................59
setForeground(Color) ................................................................................................................................. 8, 58
setJMenuBar(JMenuBar) .................................................................................................................................22
setLayout(LayoutManager) .................................................................................................... .................. 42, 50
setMaximumRowCount(int) ............................................................................................................................18
setPreferredSize(Dimension)...................................................................................................... .........10, 44, 46
setSelected(boolean)................................................................................................................................. 11, 13
setSelectedIndex(int) ....................................................................................................... ......................... 16, 18
setSelectionMode(int) ..................................................................................................................................... 16
setSize(Dimension) ........................................................................................................................................... 9
setSize(int,int) ................................................................................................................................................... 8
setText(String) .................................................................................................................................................14
setTitle(String)............................................................................................................. ................................. 5, 7
setToolTipText(String) ................................................................................................................................... 30
setVisible(boolean)....................................................................................................................................... 5, 8
setVisibleRowCount(int) .................................................................................................................................17
show(Component,int,int) .................................................................................................................................27
showConfirmDialog ....................................................................................................................................... 34
showInputDialog ...................................................................................................................................... 36, 38
showMessageDialog ....................................................................................................................................... 32
validate() ..........................................................................................................................................................75
windowClosing(WindowEvent) ......................................................................................................................70
méthode (interface graphique)
actionPerformed(ActionEvent)................................................................................................................. 72, 73
add(Component) .............................................................................................................. ......................7, 43, 75
add(Component,int) ........................................................................................................................................ 43
add(Component,String) ....................................................................................................... ..................... 43, 47
addFocusListener(FocusListener) ................................................................................................................... 66
addItem(Object) .............................................................................................................................................. 19
addItemAt(Object,int) ..................................................................................................................................... 19
addKeyListener(KeyListener) ........................................................................................................................ 66
addMouseListener(MouseListener) ................................................................................................................ 66
addMouseMotionListener(MouseMotionListener) ......................................................................................... 66
addSeparator() ................................................................................................................................................ 22
addWindowListener(WindowListener) .......................................................................................................... 70
drawImage(Image,int,int,ImageObserver) ...................................................................................................... 61
drawLine(int,int,int,int) ............................................................................................................................ 55, 60
drawOval(int,int,int,int) .................................................................................................................................. 60
drawRect(int,int,int,int) .................................................................................................................................. 60
drawString(String,int,int) ................................................................................................................................ 60
getActionCommand() ..................................................................................................................................... 73
getColor()........................................................................................................................................................ 58
getContentPane() ......................................................................................................................................... . 5, 7
getFont() ......................................................................................................................................................... 59
getImage() ....................................................................................................................................................... 61
getImage(String) ............................................................................................................................................. 61
getImage(URL) ............................................................................................................................................... 61
getInsets() ....................................................................................................................................................... 51
getSelectedIndex() .......................................................................................................................................... 19
getSelectedItem() ............................................................................................................................................ 19
getSelectedValue() .......................................................................................................................................... 17
getSelectedValues() ........................................................................................................................................ 17
getSize() ............................................................................................................................................................ 9

Page 83
Index
getSource().......................................................................................................................................................73
getText() ..........................................................................................................................................................15
isEnabled() ........................................................................................................................................................ 8
isSelected() ................................................................................................................ ..........................11, 13, 25
mouseClicked(MouseEvent) ............................................................................................................................65
mouseEntered(MouseEvent) ............................................................................................................................65
mouseExited(MouseEvent) ..............................................................................................................................65
mousePressed(MouseEvent) ............................................................................................................................65
mouseReleased(MouseEvent) ..........................................................................................................................65
paintComponent(Graphics)......................................................................................................53, 55, 57, 58, 59
remove(Component)............................................................................................................ ....................... 7, 75
removeItem(Object) ........................................................................................................................................ 19
repaint() .................................................................................................................................................... 56, 62
revalidate() .......................................................................................................................................................75
setActionCommand(String) .............................................................................................................................74
setBackground(Color)....................................................................................................................................... 8
setBounds(int,int,int,int) ..........................................................................................................................5, 9, 50
setColor(Color) ................................................................................................................................................58
setEditable(boolean) ........................................................................................................................................19
setEnabled(boolean) ................................................................................................................................... 8, 21
setFloatable(boolean) .......................................................................................................................................28
setFont(Font) ...................................................................................................................................................59
setForeground(Color) ........................................................................................................ ......................... 8, 58
setJMenuBar(JMenuBar) .................................................................................................................................22
setLayout(LayoutManager) .................................................................................................... .................. 42, 50
setMaximumRowCount(int) ............................................................................................................................18
setPreferredSize(Dimension)...............................................................................................................10, 44, 46
setSelected(boolean)......................................................................................................... ........................ 11, 13
setSelectedIndex(int) ................................................................................................................................ 16, 18
setSelectionMode(int) ..................................................................................................................................... 16
setSize(Dimension) ........................................................................................................................................... 9
setSize(int,int) ................................................................................................................................................... 8
setText(String) .................................................................................................................................................14
setTitle(String).............................................................................................................................................. 5, 7
setToolTipText(String) ................................................................................................................................... 30
setVisible(boolean)....................................................................................................................................... 5, 8
setVisibleRowCount(int) .................................................................................................................................17
show(Component,int,int) .................................................................................................................................27
showConfirmDialog ....................................................................................................................................... 34
showInputDialog ............................................................................................................. ......................... 36, 38
showMessageDialog ....................................................................................................................................... 32
validate() ..........................................................................................................................................................75
windowClosing(WindowEvent) ......................................................................................................................70

Page 84

Vous aimerez peut-être aussi