0% ont trouvé ce document utile (0 vote)
239 vues85 pages

Interface Graphique Intuitive

Transféré par

fake world
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)
239 vues85 pages

Interface Graphique Intuitive

Transféré par

fake world
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

!

" #$ %
Plan
!
& '"( )' (
"!* !" !+!* ,!
- ,!. /! !'"!. " 0 1 !. 2 , ), ..! /" *! 3
4 !. *!'0( !. ' ,!. ! , ), ..! )(* ( ! ' 5
,!. )(* (. '. '(* 1 !. &

6 ,!. *! . !' ,!. ""!. 7( ' ,.

! "
#
# $
3 ,!. ( '!. ! ,( ! -&
" !
" %
"
" #
" ! $
5 ,!. !.' ( "!. ! * .! ! /("*! 4
! & '
! ( ) '
! * ' "
! + '
, ! ! % $
, ! !
8 !.. ( . 9!) 9 -
- * .
- /
- + "
- 0%% ! . !
" # $ % # & ' # ()
& '"( )' ( 6-
'" '!" !9! !*! ' 64
- '!")! '!" !9! !*! ' 6
4 "!* !" !+!* ,! 66
1 2 3
/ 2 3 "
, (' ( $ ' '! " 65
6 "!) ' ,( . 68
3 !+!* ,! 9!) !. ( '( . 3&
5 !+!* ,! ! )"! ' ( : * 1 ! ! ( '( . 34
8 ,!. ), ..!. '!" !. !' ( :*!. 36
- "
- ' "
* *" $ +,

% - ./
Interface graphique Introduction

I. Interface graphique

I.1. Introduction
; # ; < =< ; < # 01 0 = <
#$ > # % = < 2

0 # ? = #$
= < @= < ; < % A B

01 0 01 # = <
< > < = #$ @= < ; <

, = > #7 CDE

F > ( F =
G
H F > I ) < D
G
H F > I ) D
G
H F > I
G
H F > I <<
G
H F > ; I <<
G
H F > I J # I
G
H F > ; I J # I
G
H F > I /
G
H F > ; I / % 4 !
G
H F > I
G
H F > ; I !

Page 2
Interface graphique Introduction

F > ( F =
G
H F > I ) < D
G
H F > I ) D
G
H F > ; I ) < D
G
H F > ; I
G
H F > ; I =
G
H F > ; I
G
H F > ; I '
G
H F > ; I ) =K ;
G
H F > ; I " #
G
H F > ; I * #
G
H F > ; I ) =K ;* #
G
H F > ; I " # * #
G
H F > ; I * #
G
H F > ; I ,
G
H F > ; I ; ' ;) <
G
H F > ; I ' ;/ #
G
H F > ; I ; ,
G
H F > ; I ; = ;
G
H F > ; I .= %
G
H F > ; I *
G
H F > ; I < <* !
G
H F > ; I ' #

Page 3
Interface graphique Introduction

0% . 3 . 3 . !
! %%
% ! 5
' !
[Link] [Link]

Page 4
Interface graphique Un premier exemple

I.2. Un premier exemple


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

class MaFenetre extends JFrame {


private JButton MonBouton ;
public MaFenetre () {
super() ;
66 % JFrame
4
setTitle("Ma premiere fenetre avec un bouton") ;
66 % 4
setBounds(10,40,300,200) ;
66 ! % 4
$5 $ $$ 7
$$
MonBouton = new JButton("Un bouton") ;
66 . % MonBouton
. Un bouton
getContentPane().add(MonBouton) ;
661 8 % 4 5 %
% 4
getContentPane JFrame %
% 5 ' Container
66 add Container
. 8 % 4
}
}

public class MonProg {


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

Page 5
Interface graphique Un premier exemple

) ? % A @ > < # %

% A # < JFrame < A @ # < =


# ? =L 0 @ % #7 % A #
< JFrame < % < @ #
< % A > C= <<
# setVisible(false)E % < @
% % % A =

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

I.3. Les fenêtres graphiques : la classe


JFrame
, = JFrame # < [Link] < # =
# 2

, = JFrame # < # # ; = = 2
= = = = > =
= < # # % A
"
, =
JFrame fen = new JFrame() ;
[Link]("Une fenêtre") ;
7 =
JFrame fen = new JFrame("Une fenêtre") ;
>

% A = # ? = #7
= <

, # getContentPane # = JFrame %
% = @ # < Container@ = # % A

, add # remove # = Container


< < = > #7 F # <<
= < #7 % A
Component add(Component compo)
void remove(Component compo)

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

I.4. Des méthodes utiles de la classe


Component
, = Component = # > #
= Object = < = < #7 % =
<

, # > # = Component < #


7 < = #7 = < # = < = #7
% A

* = = = <
void setVisible(boolean b)
!; < 2
[Link](true) 3 compo

= > # = > = <


void setEnabled(boolean b)
!; < 2
[Link](true) 3 compo

) M $ C = > E #$ = <
boolean isEnabled()
!; < 2
[Link]() compo
3

* #% = # % # #7 = <
void setBackground(Color c)

* #% = # < < #7 = <


void setForeground(Color c)

* #% #7 = <
void setSize(int largeur, int hauteur)

Page 8
Interface graphique Des méthodes utiles de la classe
Component
* #% < #7 = <
void setBounds(int x, int y, int largeur, int hauteur)

# #7 = <
Dimension getSize()
void setSize(Dimension dim)
66 Dimension ! [Link]
9 height : ;
width : ! ;

Page 9
Interface graphique Les composants atomiques

I.5. Les composants atomiques


, = JComponent = # > #
= Container = < = <
#7 % = < , < =< ; = <
%% < > @ = ?= = @
# @ @ = < # ; @ M
# M # =
F > ( F =
G
H F > I ) < D
G
H F > I ) D
G
H 3 4 01 0 5
G
H F > ; I =
G
H F > ; I
G
H F > ; I '
G
H F > ; I ) =K ;
G
H F > ; I " #
G
H F > ; I ,
G
H F > ; I ; ' ;) <
G
H F > ; I ' ;/ #
G
H F > ; I ; ,
G
H F > ; I ; = ;
G
H F > ; I .= %

, # setPreferredSize # = JComponent
< #7 < ? = < ! < #
F # < Dimension
!; <
JButton bouton = new JButton("Un bouton") ;
[Link](new Dimension(10, 20)) ;
66 ! $ $

Page 10
Interface graphique Les composants atomiques

I.5.1. Les cases à cocher


, = ? = = # < JCheckBox < ? $
#$ %% = = ;# < N

!; <
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") ;
66 . % MaCase
. Une case
getContentPane().add(MaCase) ;
}
}

# % @ = ? = = = # $
= = C% E , # isSelected # =
AbstractButton < # = M $ C % E #$
= ?= = ? # , # setSelected #
= AbstractButton < # #% $ #$ = ?
= =
!; <
[Link](true) ;
66 % MaCase

Page 11
Interface graphique Les composants atomiques

I.5.2. Les boutons radio


, # # < JRadioButton < ? $
#$ %% = = ;# < N * > = #
% < #$ < # # <
< A = ? %

!; <
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") ;
66 . % bRouge
. Rouge
bVert = new JRadioButton("Vert") ;
66 . % bVert
. Vert
ButtonGroup groupe = new ButtonGroup() ;
[Link](bRouge) ; [Link](bVert) ;
66, 8 ' ButtonGroup :
! [Link], 3 Object;
3
. . !
3 , .
! 5 % 5

Container contenu = getContentPane() ;


[Link](new FlowLayout()) ;
66 8 ' FlowLayout !
%

[Link](bRouge) ;

Page 12
Interface graphique Les composants atomiques

[Link](bVert) ;
6608 % 4 ,
8 ' ButtonGroup .
4 8
}
}

# % @ # = # $
= C% E C # # isSelected
setSelected # = AbstractButtonE

Page 13
Interface graphique Les composants atomiques

I.5.3. Les étiquettes


# < Jlabel < #$ %% = #
= ; C#$ E #% @
< < % >

!; <
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") ;
66 . % MonTexte
texte initial
getContentPane().add(MonTexte) ;
[Link]("nouveau texte") ;
66 % . %
MonTexte
}
}

Page 14
Interface graphique Les composants atomiques

I.5.4. Les champs de texte


= <# ; C M # E# < JTextField
O = # $ <
#% ; C#$ E

!; <
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) ;
66 $:
2 %% ;
Monchamp2 = new JtextField("texte initial", 10) ;
66 $ texte
initial
getContentPane().add(MonChamp1) ;
getContentPane().add(MonChamp2) ;
}
}

= ; $ = ? = < < $# %
( < F # < JLabel $ < #
# # < = >

, # getText < # = M ?
= #$ = <# ;
!; <
String ch= [Link]() ;

Page 15
Interface graphique Les composants atomiques

I.5.5. Les boîtes de liste


, M # # < JList < # =
< > # < # % @ =
> $ = #

!; <
String[] couleurs = {"rouge", "bleu", "gris", "vert",
"jaune", "noir"};
JList MaListe = new Jlist(couleurs) ;
[Link](2) ;
66 . !

; # M # @ = = <
< P # < 2
9 # < P # < ' < # =
= < #
. ,!Q.!,!)' ( = #$ >
. ,!Q '!"9 ,Q.!,!)' ( = #$ < #
> C= RE
* ,' ,!Q '!"9 ,Q.!,!)' ( = #$
= # < #
>
# % @ < #$ M #
* ,' ,!Q '!"9 ,Q.!,!)' (

, # setSelectionMode < # #% <


#$ M #
!; <
[Link](SINGLE_SELECTION);

Page 16
Interface graphique Les composants atomiques

M # ? = < @ #
getSelectedValue % > = .
# < Object
!; <
String ch = (String) [Link]();
66 !

< # M # @ #
getSelectedValue % < P # >
= > @ %
# getSelectedValues % #7 F
!; <
Object[] valeurs = [Link]();
for (int i=0 ;i<[Link] ;i++)
[Link]((String) valeurs[i]) ;
66 !

# % M # < P# < # 6 7
78 9 1 ( < F 7 # #
< # # % # < JScrollPane C= # > #
= JComponentE = = @ 7 F <
= M # @ < # # %
!; <
JFrame fen = new JFrame() ;
JScrollPane defil = new JScrollPane(MaListe) ;
66 % MaListe %% 3 <
5 % #
[Link](4) ;
66 3 3 %
[Link]().add(defil) ;
66 8 % % 4

Page 17
Interface graphique Les composants atomiques

I.5.6. Les boîtes de liste combinée


, M # = C M = E # <
JComboBox = = < # ; M #
? = < ' = < 7 < = @
= <# ; 7 %% = 2

, 7 = = <# ; @ M #
7 %% = 2

,7 < = > # M #
7 %% = # = < # ; @ =
> $ = #
!; <
String[] couleurs = {"rouge", "bleu", "gris", "vert",
"jaune", "noir"};
JComboBox MaCombo = new JComboBox(couleurs) ;
[Link](2) ;
66 . !

, M = # #7 # # % #P
# > < ? 5 ( < #%
# > > > = #
setMaximumRowCount
!; <
[Link](4) ;
66 3 %%

Page 18
Interface graphique Les composants atomiques

# % @ = <# ; = ? M = 7
< # @= % 7 ?<
= = # * < A # #
< # setEditable ,7 <
> # C = E@ > #
= ;C E
!; <
[Link](true) ;

, # getSelectedItem % > =
. # < Object
!; <
String ch = (String) [Link]();

, # getSelectedIndex % # >
= ! % > &@ 7
> > C=7 ? # > 7 <
= # E

, M = # < # # << < ?


#%=
!; <
[Link]("orange") ;
66 8 3 orange %
[Link]("orange", 2) ;
66 8 3 orange
[Link]("gris") ;
66 3 gris

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

I.6. Les menus et les barres d'outils


% A # < Frame = < # = <
@ # = < < <
= #7

F > ( F =
G
H F > I ) < D
G
H F > I ) D
G
H 3 4 01 0 D
G
H F > ; I =
G
H F > ; I * #
G
H F > ; I ) =K ;* #
G
H F > ; I " # * #
G
H F > ; I * #
G
H F > ; I *
G
H F > ; I < <* !
G
H F > ; I ' #

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

I.6.1. Les menus déroulants


, # % > #7 F 2
F 6 7 1 # < JMenuBar B
# %% F 1 @ # < JMenu@ > #
# B
< = @ # %% 0 0 @ # <
JMenuItem@ =

, # setEnabled # = Component <


#7 = > # # = > <

Page 21
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) ;
66 #
barreMenus = new JMenuBar() ;
setJMenuBar(barreMenus) ;
66 8 % 4
66 # Couleur Rouge
Vert
couleur = new JMenu("Couleur") ;
[Link](couleur) ;
rouge = new JMenuItem("Rouge") ;
[Link](rouge) ;
[Link]() ; ;
66 8 # 3 # 3
vert = new JMenuItem("Vert") ;
[Link](vert) ;
66 # Dimensions
Hauteur Largeur
dimensions = new JMenu("Dimensions") ;
[Link](dimensions) ;
hauteur = new JMenuItem("Hauteur") ;
[Link](hauteur) ;
[Link]() ;
largeur = new JMenuItem("Largeur") ;
[Link](largeur) ;
}
}

Page 22
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 23
Interface graphique Les menus et les barres d'outils

b. Les différentes sortes d'options


, < # < JMenuItem < <
= # @ ; # ; <
#7 < 2 # < = ? = = # <
JCheckBoxMenuItem # < # # <
JRadioButtonMenuItem
!; <
JMenuBar barreMenus = new JMenuBar() ;
setJMenuBar(barreMenus) ;
66 # Couleur !
Rouge 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) ;
66 !
' ButtonGroup % # #
# ! : % ! ;
66 # Formes
Rectangle Ovale
JMenu formes = new JMenu("Formes") ;
[Link](formes) ;
JCheckBoxMenuItem rectangle = new
JCheckBoxMenuItem("Rectangle") ;
JCheckBoxMenuItem ovale = new
JCheckBoxMenuItem("Ovale") ;
[Link](rectangle) ; [Link](ovale) ;

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

, # isSelected # = AbstractButton < #


> < = !
7 < = @%

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

c. Composition des options

7? < @ % #7 <
#7 < ! % @ < < ? % <<
M
# < = % @ %% #7 #
< # < JMenu C < # <
JMenuItemE ) # = < A < # %
>
!; <
JMenuBar barreMenus = new JMenuBar() ;
setJMenuBar(barreMenus) ;
66 # Formes # Arrondi
4 Cercle Ovale5 5
# 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 26
Interface graphique Les menus et les barres d'outils

I.6.2. Les menus surgissants


, @ >
#7 # @ #
= ? # # = %% = < =
# % A > > < < # 1
# < JPopupMenu # C
E# #7 < << M ? = =
# 7
!; <
66 # !
Rouge Vert
JPopupMenu couleur = new JPopupMenu() ;
rouge = new JMenuItem("Rouge") ;
[Link](rouge) ;
vert = new JMenuItem("Vert") ;
[Link](vert) ;

# A %% = ;< = <
< @ # show # =
JPopupMenu ) # # ; 2 = <
= = C @ 7 # % A E = #
; % << M C= #
# = < = E , %% = F 7? =
7 = < % =
? =L
!; <
JFrame fen = new JFrame() ;
[Link](true) ;
[Link](fen, x, y) ;
66 %% x y

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

I.6.3. Les barres d'outils


#7 # < JToolBar #
< # # # % A
! @= = < < L # =L #

!; <
class MaFenetre extends JFrame {
JToolBar barreOutils ;
JButton boutonRouge, boutonVert ;
public MaFenetre () {
super("Une fenetre avec une barre d'outils") ;
setSize(300, 200) ;
66 # #
9 Rouge Vert
barreOutils = new JToolBar() ;
boutonRouge = new JButton("Rouge") ;
[Link](boutonRouge) ;
boutonVert = new JButton("Vert") ;
[Link](boutonVert) ;
getContentPane().add(barreOutils) ; }
}

# % @ #7 90 @ =7 ? # 7
< # < = #7 # ? # % A @ ?
7 # % A ( < # ? #7 #
% S= ? # setFloatable
!; <
[Link](false) ;

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

< A = > = =L # < ImageIcon


C= # < [Link] # > # = ObjectE
#7 ;
!; <
JToolBar barreOutils = new JToolBar() ;
ImageIcon iconeVert = new ImageIcon("[Link]") ;
66 # = # % "[Link]"
# 3
JButton boutonVert = new JButton(iconeVert) ;
[Link](boutonVert) ;

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

I.6.4. Les bulles d'aide


#7 # < = C T <T
E= % ; ;< = % << M
= < C @
@ UE <> #7 %% = <
7 < = < S= ? # setToolTipText
# = JComponent
!; <
barreMenus = new JMenuBar() ;
setJMenuBar(barreMenus) ;
66 # Couleur Rouge
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

I.7. Les boîtes de dialogue


, M # # = ! < # <
7 < = < # # % A 7 %
<< M # < M

> < < = # M # # # #


? 7 # # # # = # =
JOptionPane 2 M # @ M # = % @
M # M #7 < , = JDialog < #
= # M # # <

F > ( F =
G
H F > I ) < D
G
H F > I ) D
G
H F > I J # I
G
H F > I
G
H F > ; I !
G
H F > ; I ) < D
G
H F > ; I (< !

Page 31
Interface graphique Les boîtes de dialogue

I.7.1. Les boîtes de message


M # % ? 7
%% = 7 7 < (V !
= ? 7 # # # # =
showMessageDialog # = JOptionPane
!; <
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") ;
66 !
showMessageDialog % 4
! 5 # % 4
! 3 # %% *
! 3
}
}

7 ; <
< = # @ 7 > # % =
# ; > # #
showMessageDialog < # = #

Page 32
Interface graphique Les boîtes de dialogue

M < #7 =L < > C < P


# = P # = JOptionPaneE
1: ; 7< =
(< !""("Q*!.. ! !
(< /("* ' ( Q*!.. ! %
(< J " Q*!.. ! >
(< 1 !.' ( Q*!.. ! 1
(< , Q*!.. ! = =L

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

Page 33
Interface graphique Les boîtes de dialogue

I.7.2. Les boîtes de confirmation


M # = % %% ? 7 = ;# <
N ! = ? 7 # # # # =
showConfirmDialog # = JOptionPane
!; <
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 ?") ;
}
}

7 ; < < = # @ 7 > # %


< ? 7 ; > # #
showConfirmDialog < # = #
M # 7 > <
> C < P # = P #
= JOptionPaneE

Page 34
Interface graphique Les boîtes de dialogue

1: ; 7 60>
(< !/ ,'Q( ' ( C &E !
(< :!.Q (Q( ' ( C E :!.
(
(< :!.Q (Q) )!,Q( ' ( :!.@
C&E ( ) )!,
(< (VQ) )!,Q( ' ( C E (V
) )!,

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

, > # # # showConfirmDialog < =


7 = %% = < 7 % #7
= > 7 # = > # =
JOptionPane 2
:!.Q( ' ( C E@
(VQ( ' ( C E@
(Q( ' ( C&E@
) )!,Q( ' ( C E@
),(.! Q( ' ( C &E

Page 35
Interface graphique Les boîtes de dialogue

I.7.3. Les boîtes de saisie


M # < ? 7 # %
% % #7 = M # = =P !
= ? 7 # # # # = showInputDialog #
= JOptionPane
!; <
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") ;
}
}

, > # # # showInputDialog
F # < String = ; % < 7 @
> 7 7 < = % <
(V

Page 36
Interface graphique Les boîtes de dialogue

7 ; < < = # @ 7 > # %


< ? 7 ; > # #
showInputDialog < # = # M
< #7 =L C > > % < <
3&E
!; <
[Link](fen, "Entrez votre nom",
"Controle d'identite",
JOptionPane.WARNING_MESSAGE) ;

Page 37
Interface graphique Les boîtes de dialogue

I.7.4. Les boîtes d'options


M #7 < < ? 7 # = >
< # > @ < 7 # #7 M
= ! = ? 7 # # # # =
showInputDialog # = JOptionPane
!; <
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", 66
JOptionPane.QUESTION_MESSAGE,
66 ' # = 3 3 ! "
null,
66 = : ;
couleurs,
66 3
couleurs[1]) ;
663 %
}
}

Page 38
Interface graphique Les boîtes de dialogue

, > # # # showInputDialog
F # < Object = > = <
7 @ > 7 7 < = %
< (V

Page 39
Interface graphique Les boîtes de dialogue

I.7.5. Les boîtes de dialogue personnalisées


, = JDialog < # = < < M #
#

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, 66% 4
"Mon dialogue", 66
true) ; 66 9 # !
!
# # % !
setSize(200, 100) ;
66 #
! 3 # %%
MonBouton = new JButton("Un bouton") ;
MonChamp = new JTextField(10) ;
Container contenu = getContentPane() ;
[Link](new FlowLayout()) ;
66 8 ' FlowLayout !
%

[Link](MonBouton); [Link](MonChamp) ;
66 8 # #
!
}
}

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) ;
66 %% ! % bd
}
}

Page 41
Interface graphique Les gestionnaires de mise en forme

I.8. Les gestionnaires de mise en forme


= = C% A @ M # # @ UE@ >
< # = # % C
T, TE < # # < #
= <

, # % < < < >


BorderLayout@ FlowLayout@ CardLayout@
GridLayout@ BoxLayout GridBagLayout ) #
= # < [Link] # > # = Object
< 7 % = LayoutManager

, # setLayout # = Container <


#7 = # % ? = ,
BorderLayout < # % #
% A # M # #
!; <
import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


public MaFenetre () {
super("Une fenetre") ;
setSize(300, 200) ;
getContentPane().setLayout(new FlowLayout()) ;
66 ! ! %
}
}
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

I.8.1. Le gestionnaire BorderLayout


, # % BorderLayout < #
< = = = < # O <

,7 < = #7
= < = %
# # add # = Container 7 #
= P > C < # %%
# = > E2
) 9
# , ("'0 T T
# , .( '0 T. T
# , ! .' T! T
# , J!.' TJ T
# , )! '!" T) T
. = > 7 < = ? # add@ = <
< = =

, = BorderLayout # < # # ;= = 2
public BorderLayout() ;
public BorderLayout(int hgap, int vgap) ;
66hgap vgap % 3 #
> # 3 : ;
# 1 % 5

!; <
import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ;
Container contenu = getContentPane() ;
[Link](new BorderLayout()) ; 66
[Link](new JButton("UN")) ;
66 %

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) ;
}
}

! % BorderLayout
5
4 setPreferredSize
JComponent : % ! ? ;

Page 44
Interface graphique Les gestionnaires de mise en forme

I.8.2. Le gestionnaire FlowLayout


, # % FlowLayout < #
# < = < ? # @# =
?#

, = FlowLayout # < # = = 2
public FlowLayout() ;
public FlowLayout(int align) ;
66align 2 # ! # !
3 % 4
* 2 3
2 3 :
%% 3 ; 9
/ I, ,!/'CT, % TE5 / I, " 0'CT" TE
/ I, )! '!"CT) TE 1 %
! !
public FlowLayout(int align, int hgap, int vgap) ;
66hgap vgap %

!; <
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ;
Container contenu = getContentPane() ;
[Link](new FlowLayout()) ;
66 ! ! %
[Link](new JButton("UN")) ;
[Link](new JButton("DEUX")) ;
}
}

Page 45
Interface graphique Les gestionnaires de mise en forme

! % FlowLayout 5
5
5 4
setPreferredSize JComponent

Page 46
Interface graphique Les gestionnaires de mise en forme

I.8.3. Le gestionnaire CardLayout


, # % CardLayout < #
# < = < > < @# % W
= < < > ? #
!; <
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ;
Container contenu = getContentPane() ;
CardLayout pile = new CardLayout(30, 20) ;
66 !
9 $ #
$
[Link](pile) ;
66 ! ! %
[Link](new JButton("UN"), "bouton1") ;
66 "bouton1" # %

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


[Link](new JButton("TROIS"), "bouton3") ;
}}

# % @ = < > < F


= C# 7 ; < < = # @ =7 UNE (
< % << M = < # < # 7 #
% W > 2
[Link](contenu) ; 66 %% 3
[Link](contenu) ; 66 %%
[Link](contenu) ; 66 %%
[Link](contenu) ; 66 %%
[Link](contenu,"bouton3") ;
66 %% % "bouton3"

Page 47
Interface graphique Les gestionnaires de mise en forme

I.8.4. Le gestionnaire GridLayout


, # % GridLayout < #
# < = < ? #
P @ = = < == < = #

, = GridLayout # < # # ;= = 2
public GridLayout(int rows, int cols) ;
66rows cols % 3
! !
public GridLayout(int rows, int cols, int hgap, int vgap) ;
66hgap vgap %

, # P = #7 < > ># ' % @


< #7 # ># @
@# % W ? > < # < =

!; <
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ;
Container contenu = getContentPane() ;
[Link](new GridLayout(2, 2)) ;
66 ! ! %
[Link](new JButton("UN")) ;
[Link](new JButton("DEUX")) ;
[Link](new JButton("TROIS")) ;
[Link](new JButton("QUATRE")) ;
}
}

Page 48
Interface graphique Les gestionnaires de mise en forme

, # % BoxLayout < #
# < # = < > A A
= @ > = < # <
GridLayout

, # % GridBagLayout@ =
GridLayout@ < # # < = <
> @ = ;= < > == < <
= B @ # = < A #%
= # 7 ; =

Page 49
Interface graphique Les gestionnaires de mise en forme

I.8.5. Un programme sans gestionnaire de


mise en forme
< # 7 = = #
% ? = , = < F
= ? 7 # # # setBounds # =
Component
!; <
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ;
Container contenu = getContentPane() ;
[Link](null) ;
66 ! ! %
JButton bouton1 = new JButton("UN") ;
[Link](bouton1) ;
[Link](40, 40, 80, 30) ;
66 !
$5 $
! % 4
$7 $
}
}

Page 50
Interface graphique Les gestionnaires de mise en forme

I.8.6. Une classe Insets pour gérer les marges


, # getInsets # = Container < # # %
C @ = @ # E #7 =
! F # < Insets C= # <
[Link] # > # = ObjectE # % < = <
< = # < < = = > 2
public Insets(int top, int left, int bottom, int right)
!; <
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre") ; setSize(300, 200) ;
Container contenu = getContentPane() ;
[Link](new BorderLayout(10, 10)) ;
[Link](new JButton("UN")) ;
[Link](new JButton("DEUX"), "North") ;
[Link](new JButton("TROIS"), "South") ;
[Link](new JButton("QUATRE"), "West") ;
[Link](new JButton("CINQ"), "East") ;
}

66 % getInsets % %
3 ! % 4
public Insets getInsets() {
Insets normal = [Link]() ;
66 ! % % 4
return new Insets([Link]+10, [Link]+10,
[Link]+10, [Link]+10) ;
66 # 3 8 ' Insets
% ! % 4
}
}

Page 51
Interface graphique Les gestionnaires de mise en forme

Page 52
Interface graphique Dessinons avec Java

I.9. Dessinons avec Java


> < # # $ < = < S= ?
# # # # ) < # @ # = =
# @ # # # < M
< #P = # = <
#$A %% = C< ; < = # #%= #
# = @# # < = @# <P
# = =L UE 1 7<
7 @ = # < = = # # #
# paintComponent # = < = = )
# << < > = %
= < # #

* 2
. 4
%%

# @ @ @ = < =
<< # < JPanel

F > ( F =
G
H F > I ) < D
G
H F > I ) D
G
H F > ; I ) < D
G
H F > ; I

Page 53
Interface graphique Dessinons avec Java

I.9.1. Création d’un panneau


< # < JPanel = < #
< A = # = < =
#$ = <

< # T % A T@
# @ # A = < #
add C# = ContainerE ? = @
% A
!; <
import [Link].* ;
import [Link].* ;

class MaFenetre extends JFrame {


private JPanel panneau ;
public MaFenetre () {
super("Une fenetre avec un panneau jaune") ;
setSize(300, 200) ;
panneau = new JPanel();
[Link]([Link]) ;
[Link] Color
: ! [Link] 3
Object; 8
getContentPane().add(panneau) ;
66 8 % 4
}
}

public class MonProgPanneau {


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

, # % FlowLayout
< # % # < ;

Page 54
Interface graphique Dessinons avec Java

I.9.2. Dessin dans un panneau


# < # = < @ %
# % # paintComponent C # # =
JComponentE@ << = % = <
#$A # ) # $ A > 2
void paintComponent (Graphics g)
. g # < Graphics 0 4
# = < << #
#$ # # # # #
%% = > = <
!; <
import [Link].* ; import [Link].* ;

class MaFenetre extends JFrame {


private JPanel pan ;
public MaFenetre () {
super("Une fenetre avec un panneau jaune") ;
setSize(300, 200) ;
pan = new Panneau();
[Link]([Link]) ;
getContentPane().add(pan) ;
}
}

class Panneau extends JPanel {


public void paintComponent(Graphics g) {
[Link](g) ;
66 paintComponent
JPanel 5

[Link](15, 10, 100, 50) ;


66 Graphics
: 5 $;
: $$5 $;
}
}

Page 55
Interface graphique Dessinons avec Java

public class PremDes {


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

, # repaint C# = ComponentE <


#$ << # paintComponent
!; <
Panneau pan ;
[Link]() ;
66 PaintComponent . 8 pan
' Panneau

Page 56
Interface graphique Dessinons avec Java

I.9.3. La classe Graphics


, = Graphics = # <
[Link] # > # = Object ) = # < #
# < # = < P
# < P = = # % #@ =
# @ # @ < = # = =P @ #
= =P U

" 18 07 paintComponent 0 01 1
1 9 0 4 7 01 0 9?
98

Page 57
Interface graphique Dessinons avec Java

a. Paramétrer la couleur du contexte graphique


! > @ = < < F # < Color
C= # < [Link] # > # = ObjectE ,
= < # % # = Color 2 [Link]@
[Link]@ [Link]@ [Link]@ [Link]@
[Link]@ [Link]@ [Link]@ [Link]@
[Link]@ [Link]@ [Link]@ [Link]

# % @# # paintComponent #$ = < @
= = # = ; < = < #
= #$ > < # = < C > #%
< # setForeground # = Component #
= < E # paintComponent #$
= < @ < 2
= < = # = ; < = < #
public abstract Color getColor()
#% = # = ; < = < #
public abstract setColor(Color c)

, # getColor setColor # # #
= Graphics

Page 58
Interface graphique Dessinons avec Java

b. Paramétrer la police du contexte graphique

$ P @ ? # @ = <
# < #$ 09 = # < Font C= #
< [Link] # > # = ObjectE # %
< 2
# % # < = C. . %@ . %@ * < = #@
@ < EB
2 C/ , E@
C/ (, E@ C/ ' , )E@
C/ (, H/ ' , )E B
;< < < < <
<;
!; <
Font f = new Font("Serif", [Link], 18) ;

# paintComponent #$ = < @ < 2


= < < = # = ; < = < #
public abstract Font getFont()
#% < = # = ; < = < #
public abstract setFont(Font f)

, # getFont setFont # # #
= Graphics

Page 59
Interface graphique Dessinons avec Java

c. Méthodes de dessin de la classe Graphics

public abstract void drawLine(int x1, int y1, int x2, int y2)
66 :x15 y1;
:x25 y2;

public void drawRect(int x, int y, int largeur, int hauteur)


66 ! ! largeur
hauteur :x@ y;

public void drawOval(int x, int y, int largeur, int hauteur)


66 3 ! largeur hauteur
:x@ y;

public abstract void drawstring(String str, int x, int y)


66 str :x@ y;

@ !
!

Page 60
Interface graphique Dessinons avec Java

I.9.4. Affichage d’images


> # ;% # =K #$ 2 %
/C < = % = / E > = 6= # <
% ! C < = !;< <E > = <
# &6 # = # <

, = #7 % <
' #7 #@ = = # = ImageIcon C=
# < [Link] # > # = ObjectE
< # =
! @ # getImage < #7 F #
< Image ? < #7 F # < ImageIcon ,
# getImage # = Toolkit C= #
< [Link] # > # = ObjectE <
# = # < %= = , #
getImage # = Applet < # =
# < # ,7 # = #
F # < URL C= # < [Link]
# > # = ObjectE@ < # <
# # C ", < %
" % = , = E
! % @ # drawImage # = Graphics <
#$ %% = # < Image C= # <
[Link] # > # = ObjectE

, getImage $
# # < = #
$ %% = < # <
< < P # $ %% = # $
% # < > %% = $ < # $ @ >
% P # # drawImage #
= Graphics % = F < = <<
06 ) F < $ % =
ImageObserver = < # imageUpdate
<< = % $ > < # $
# <

Page 61
Interface graphique Dessinons avec Java

' = < < $ % = ImageObserver


% # imageUpdate << @ <
# % @ # repaint @< < P #
$ %% = # $ @ %% # % this P
# # drawImage

!; <
class MaFenetre extends JFrame {
private JPanel pan ;
public MaFenetre () {
super("Une fenetre avec une image") ;
setSize(300, 200) ;
pan = new Panneau();
getContentPane().add(pan) ; }
}

class Panneau extends JPanel {


private ImageIcon rouge;
public Panneau() {
rouge = new ImageIcon("[Link]") ;
66 ! # ! . 8 %
rouge5 % A ! ! %A
}
public void paintComponent(Graphics g) {
[Link](g) ;
Image imRouge = [Link]();
66 getImage %
8 ' Image . 8 '
ImageIcon
[Link](imRouge, 15, 10, this) ;
66 %% . ! imRouge
: 5 $;
}
}

Page 62
La gestion des événements Introduction

II. La gestion des événements

[Link]
= = @ % << #$ = = >
= # #$ % A # ; <
#$ >

B 3 3 3 9 3
3 : 5 % 4 ;
3 3 : 5
3 . . %
3 ;

! > @ > $ < > < @


> # < # # = < $
( << 0 #$ > $ F $
!; <
,$ > ? = = # % A
# < MouseEvent
,$ > ? = = #
< ActionEvent

' > < < # # % =


< # < XXXEvent@ = # <
[Link] # < [Link] # >
# = EventObject C= # < [Link] # >
# = ObjectE

0% . 3 . 3 . !
! %%
% ! 5 '
! java.awt5 [Link].event5
[Link] [Link]

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

[Link] un événement
= < < % = A >
$ P # P = ?# F < =
<< 8 0 C = < < A < <
= E

! % = # > $ @ = #
< % = < = P @ # > # $ % =
EventListener@ = < #? = #$ >
> # < XXXEvent@ = #
< $ % = XXXListener
!; <
,$ % = MouseListener = < # ? =
#$8 8 1 0 # < MouseEvent ! = <
= # = < # = = ? >
< =
public interface MouseListener extends EventListener {
public void mousePressed(MouseEvent e) ;
66 .

66 . ! e ' MouseEvent
. 8 3 !
public void mouseReleased(MouseEvent e) ;
66 . C

public void mouseClicked(MouseEvent e) ;


66 . :
. . C
;
public void mouseEntered(MouseEvent e) ;
66 .
. .
public void mouseExited(MouseEvent e) ; }
NN << #$ = < C
< # $ ? $ ; # = < E

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

[Link] un événement
, $ = < > = < > # <
XXXEvent@ # < = # = = <<
# addXXXListener(XXXListener objetEcouteur)@
X $ objetEcouteur = < # ? $ F =
= # $ >

> > = < #$A


< = < # @ % == #
# % addXXXListener # % # = #
= < # = = #
!; <
, = Component # % #
> 2
public void addFocusListener(FocusListener l) ;
66 % : 5
5 . % ;
public void addKeyListener(KeyListener l) ;
66 3 3
public void addMouseListener(MouseListener l) ;
66 3
public void addMouseMotionListener
(MouseMotionListener l) ;
66 3

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

[Link] premier exemple

II.4.1. 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());
66 % 4 % . 3

}
}

66 . . 3 . %
MouseListener !
. 3
class EcouteurSouris implements MouseListener {
66 % .
public void mouseClicked(MouseEvent e) {
[Link]("clic dans la fenetre"); }
66 % A3 A
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 66
La gestion des événements Un premier exemple

II.4.2. 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);
66 % 4 . 3
}
66 . ! e ' MouseEvent . 8
3 ! % 4 . D
%
public void mouseClicked(MouseEvent e) {
int x = [Link]() ;
int y = [Link]() ;
66
[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 67
La gestion des événements La notion d’adaptateur

[Link] notion d’adaptateur


= % = XXXListener 0 87 9
18 07 @ > % = < = P XXXAdapter@
<< 7 @ < # #
$ % = > = = < >#

# % = #$ > # < XXXEvent@


%% # # > 7 = # = XXXAdapter #
# % # >

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

class EcouteurSouris extends MouseAdapter {


66 %
.
public void mouseClicked(MouseEvent e) {
[Link]("clic dans la fenetre") ;
}
}

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

II.6.Récapitulons
> # < = C< ; <
% #$ % A E < = @ < ?
> 2

" = = # # % addXXXListener
# % # = # = # =
= #

# % % = XXXListener
$ = > #
# B = < #$ # % <
XXXEvent # $ > ?
!; <
,$ % = WindowListener # % #
windowClosing << # % #$
% A C # addWindowListener
# # = Window@ = = # #
= JFrameE

% = $ ><
,$ F =
< < = @ #
< $ % = XXXListener #
,$ = = # < # <
$ % = XXXListener #
,$ = = # < # # > #
= XXXAdapter = ? $ % =
XXXListener #

< # # $ % = XXXListener
, % = #
$ > < < P # = # <
A ;<
!; <
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre qui gere sa fermeture") ;

Page 69
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

[Link] exemple avec des boutons


< # = = $ > # <
ActionEvent ,$ % = ActionListener = < $
# 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) ;
66 4 3 4
2 .
. MonBouton1
[Link](this);
66!2 . .
MonBouton1
[Link](new EcouteurFermer());
66!2 % % 4 .
. MonBouton1
[Link](this);
66!2 . .
MonBouton2
}
public void actionPerformed(ActionEvent e) {
66 getSource
EventObject % % ' Object
. 3

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

if([Link]() == MonBouton1)
66 3 ' JButton '
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) ; }
}

, # getSource # = EventObject <


#$ # % = #$ > ! $ << ?
> < $ < = <

, # getActionCommand # = ActionEvent
< #$ > 7 011 7 = ? =
#$ > , = < # < #$ = M #
= # @ = ? = = @
# < # % @ = M # = #
= ?
!; <
, # actionPerformed # = MaFenetre <
$ = 2
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

, # setActionCommand # = JButton <


#$ = = M # = # ?
!; <
[Link] ("premier bouton").

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

[Link] exemple de création dynamique de


boutons
$? < @ = < #$ = =
A < = %% =
< = ) < # @ < @ ? @ F
> = < ? = C S= ? # add #
= ContainerE << = < #$
= C S= ? # remove # = ContainerE
. $ # < %% = < P $ %% = #
= @ % % = # % ?
= = < # = < # = C&E
<< # validate C# = ComponentE #
= @ C E << # revalidate C#
= JComponentE # = < # =

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]() ;
66
}
}

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

[Link] classes internes et anonymes


, = = >
# # > # % =
<

II.9.1. Les classes internes


9 # # % ?
7 #7 = C #7 # E
!; <
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre qui gere sa fermeture") ;
setSize(300, 200) ;
addWindowListener(new EcouteurFermer());
}
66 MaFenetre
class EcouteurFermer extends WindowAdapter {
public void windowClosing(WindowEvent e) {
[Link](0); }
} 66%
}

F #7 = F = @
# = @? F #7 = ; # #
7 # =
F #7 = F ==P ; = <
# C A < > E # 7 F ; #
=
F #7 = ; F ==P ;= <
# C A < > E # 7 F #
=

!; <

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 { 66 Cercle
private int x, y ;
public Centre(int x, int y) {
this.x = x ; this.y = y ; }
public void affiche() {
[Link]("( " + x + ", " + y + ")") ; }
} 66%
public Cercle(int x, int y, double r) {
c = new Centre(x, y) ;
66 # 8 ' Centre5 # 8
' Cercle ' :
;
this.r = r ; }
public void affiche() {
[Link]("Cercle de rayon " + r + " et de
centre ") ;
[Link]() ; } 66 affiche Centre
public void deplace(int dx, int dy) {
c.x += dx ; c.y += dy ; }
66 2 3 x y Centre
}

public class MonProgCercle {


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

) = # # = C&@ -E
) = # # = C @ &E

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

II.9.2. Les classes anonymes


9 0 ;1 = ! < # >
#7 =
!; <
class MaFenetre extends JFrame {
public MaFenetre () {
super("Une fenetre qui gere sa fermeture") ;
setSize(300, 200) ;
addWindowListener(new WindowAdapter() {
66 ' 3
WindowAdapter
public void windowClosing(WindowEvent e) {
[Link](0); }
}) ; 66% '
}
}

= < < % =
!; <
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(){
66 ' # %
ActionListener
public void actionPerformed(ActionEvent e) {
[Link](0); }
}); 66% '
}
}
}

Page 78
Bibliographie

Bibliographie

) # 1 ! B 3 ! @

) . 0 ) 0 E B 3 ? 9
( 3 ) < / = @

) > @ = * O @ ! = * #
. K B 3 5 ' 2 !# @ &883

, , ) , K ! B 3 . Y
.= * = C/ = E@ &886

< 2NNIII F > =

Page 79
Index

Index

=
= !> 6-@ 3 @ 3-
# , 4 @ 4-
;, 48
< & @ 4
) #, 43
) 5
) < 5@ 66
) @ 3@ 4 @ &
8
!> ( F = 6-@ 3-
/ I, 4 @ 4
/ 8
< = @ 3
# , 48
#, 45
6&
= 8@ 6&
&
@ & @ 3 @ 34
) =K ; &&
) =K ;* 4
) ; &5
) < &
-&@ 4
/ @ 6@ 3
, &4
, &6
* &@ @ 6
* &@
* &@ @ 4@ 6
(< -&
-@ 4
< <* 3
" # &
" # * 4
.= &3
' ;/ # &
' 5
* !> 6-
", 6&
= C % = < E
= !> 6-@ 3 @ 3-
# , 4 @ 4-
;, 48
< & @ 4
) #, 43
) 5
) < 5@ 66
) @ 3@ 4 @ &
8

Page 80
Index
!> ( F = 6-@ 3-
/ I, 4 @ 4
/ 8
< = @ 3
# , 48
#, 45
6&
= 8@ 6&
&
@ & @ 3 @ 34
) =K ; &&
) =K ;* 4
) ; &5
) < &
-&@ 4
/ @ 6@ 3
, &4
, &6
* &@ @ 6
* &@
* &@ @ 4@ 6
(< -&
-@ 4
< <* 3
" # &
" # * 4
.= &3
' ;/ # &
' 5
* !> 6-
", 6&
= 38
= 33
= ; < @ 3

> 6-@ 3
# < 68
= 6 @ 68
= < 66
= 6-
6
>
; < 3 @3
> % A
; < 3&
% = J # I, 3
# ##J # I, CJ # I, E 3
# I # I) CJ # I!> E 3
>
= * !> 6-
; < 63@ 65@ 68
% = * , 6
# ##* , C* , E 66

# % 4

% =

Page 81
Index
= , 3
!> , 6
( > 6&
, * 4
* , 6
J # I, 3
% = C % = < E
= , 3
!> , 6
( > 6&
, * 4
* , 6
J # I, 3

#
= % #C = !> E 3 @ 3-
##C) < E 3@ 4-@ 3
##C) < @ E 4-
##C) < @. E 4-@ 43
##/ = , C/ = , E 66
## C( F = E &8
## C( F = @ E &8
##V , CV , E 66
##* , C* , E 66
##* * , C* * , E 66
##. < CE
##J # I, CJ # I, E 3
# I C @ @ @ ( > E 6&
# I, C @ @ @ E @6
# I(> C @ @ @ E 6
# I" = C @ @ @ E 6
# I. C. @ @ E 6
= ) #CE 3-
) CE 5
) CE @3
/ CE 8
CE 6&
C. E 6&
C ",E 6&
CE &
. = # # ;CE &8
. = # CE &8
. = #9 CE &3
. = #9 CE &3
. O CE 8
. = CE 3-
' ; CE &
! #CE 5
. = #CE &&@ &-@
) =K #C* !> E 6
! #C* !> E 6
!; #C* !> E 6
#C* !> E 6
" #C* !> E 6
< ) < C < =E -@ @ 3@ 5@ 8
> C) < E 3@ 3
> C( F = E &8
< CE 6@ 6
> # CE 3

Page 82
Index
= ) #C. E 34
=K #C) E 5
#C @ @ @ E @ 8@
) C) E 5
!# C E &8
! #C E 5@ &
/ C E 5
/ C/ E 8
/ #C) E 5@ 5
* C* E
, C, * E 4 @
* ; " I) C E &5
% #. O C E & @ 44@ 46
. = #C E &&@ &-
. = # # ;C E &6@ &5
. = * # C E &6
.O C E 8
.O C @ E 5
' ; C. E &4
' C. E @3
' ' <' ; C. E -
9 C E @5
9 " I) C E &3
IC) < @ @ E 3
I) % -4
I < -6@ -5
I* -
> # CE 3
I # I) CJ # I!> E 3
# C % = < E
= % #C = !> E 3 @ 3-
##C) < E 3@ 4-@ 3
##C) < @ E 4-
##C) < @. E 4-@ 43
##/ = , C/ = , E 66
## C( F = E &8
## C( F = @ E &8
##V , CV , E 66
##* , C* , E 66
##* * , C* * , E 66
##. < CE
##J # I, CJ # I, E 3
# I C @ @ @ ( > E 6&
# I, C @ @ @ E @6
# I(> C @ @ @ E 6
# I" = C @ @ @ E 6
# I. C. @ @ E 6
= ) #CE 3-
) CE 5
) CE @3
/ CE 8
CE 6&
C. E 6&
C ",E 6&
CE &
. = # # ;CE &8
. = # CE &8
. = #9 CE &3
. = #9 CE &3
. O CE 8

Page 83
Index
. = CE 3-
' ; CE &
! #CE 5
. = #CE &&@ &-@
) =K #C* !> E 6
! #C* !> E 6
!; #C* !> E 6
#C* !> E 6
" #C* !> E 6
< ) < C < =E -@ @ 3@ 5@ 8
> C) < E 3@ 3
> C( F = E &8
< CE 6@ 6
> # CE 3
= ) #C. E 34
=K #C) E 5
#C @ @ @ E @ 8@
) C) E 5
!# C E &8
! #C E 5@ &
/ C E 5
/ C/ E 8
/ #C) E 5@ 5
* C* E
, C, * E 4 @
* ; " I) C E &5
% #. O C E & @ 44@ 46
. = #C E &&@ &-
. = # # ;C E &6@ &5
. = * # C E &6
.O C E 8
.O C @ E 5
' ; C. E &4
' C. E @3
' ' <' ; C. E -
9 C E @5
9 " I) C E &3
IC) < @ @ E 3
I) % -4
I < -6@ -5
I* -
> # CE 3
I # I) CJ # I!> E 3

Page 84

Vous aimerez peut-être aussi