Module : Programmation sous Java
Interfaces Graphiques
C YC LE D’ING IN IEUR S :
GÉ NIE INF O RMATIQ UE
1
2022-2023 Pof. AZROUR MOURADE
Chapitre III: Interfaces Graphiques
Introduction
AWT
Gestion des Evènements
Swing
2
Chapitre III: Interfaces Graphiques
I- Introduction
Les programmes informatiques nécessitent une interaction avec leurs utilisateurs
pour :
• Entrée des données par l’utilisateur au moment de l’exécution
• Affichage d’une partie des résultats obtenus par le traitement informatique
• …
Cet échange d’informations peut s’effectuer avec console ou en mode graphique
3
Chapitre III: Interfaces Graphiques
I- Introduction
Une interface graphique (GUI) est formée d’une ou plusieurs fenêtres qui
contiennent divers composants graphiques (widgets) tels que :
• Boutons
• Listes déroulantes
• Menus
• Champ texte
• …
4
Chapitre III: Interfaces Graphiques
I- Introduction
Pour créer des interfaces graphiques Java propose des API
• AWT
• Swing
• SWT ( Pour Crée par IBM pour Eclipse )
• JFace
5
Chapitre III: Interfaces Graphiques
II- API AWT(Abstract Window Toolkit)
6
Chapitre III: Interfaces Graphiques
II- AWT
Java AWT (Abstract Window Toolkit) est une API permettant de développer
des applications GUI sous java.
Les composants Java AWT dépendent de la plate-forme, c'est-à-dire que les
composants sont affichés en fonction de la vue du système d'exploitation. AWT
est lourd, par ce que ses composants utilisent les ressources du système
d'exploitation.
7
Chapitre III: Interfaces Graphiques
II- AWT
1- Hiérarchie des classes
8
Chapitre III: Interfaces Graphiques
II- AWT
1- Hiérarchie des classes
9
Chapitre III: Interfaces Graphiques
II- AWT
2- Composant de la fenêtre
10
Chapitre III: Interfaces Graphiques
II- AWT
3- Ma première fenêtre
Les Principales méthodes de la classe component
Method Description
public void add(Component c) Ajoute un composant dans un autre
public void setSize(int larg,int haut) Change la largeur et la hauteur
public void setLayout(LayoutManager m) Définie layout manager pour un composant
public void setVisible(boolean status) Change la visibilité d’un composant (par défaut false)
public void setBounds(int x, int y, int la, int haut) Change les position (x,y) , la largeur et la hauteur
d’un composant
11
Chapitre III: Interfaces Graphiques
II- AWT
3- Ma première fenêtre
Héritage de la classe Frame
12
Chapitre III: Interfaces Graphiques
II- AWT
3- Ma première fenêtre
Instanciation de la classe Frame
13
Chapitre III: Interfaces Graphiques
II- AWT
3- Ma première fenêtre
Création des composants
14
Chapitre III: Interfaces Graphiques
II- AWT
3- Ma première fenêtre
Création des composants
15
Chapitre III: Interfaces Graphiques
II- AWT
3- Ma première fenêtre
Création des composants
16
Chapitre III: Interfaces Graphiques
II- AWT
3- Ma première fenêtre
Ajouter tous les composants créés dans la fenêtre
17
Chapitre III: Interfaces Graphiques
II- AWT
3- Ma première fenêtre
Personnaliser votre fenêtre
18
Chapitre III: Interfaces Graphiques
II- AWT
4- Utilisation de Panel
Le Panel est une classe de conteneur la plus simple. Il fournit un espace dans lequel une
application peut attacher n'importe quel autre composant.
19
Chapitre III: Interfaces Graphiques
II- AWT
5- Les Menus
Les étapes pour créer un Menu
Créer une barre des menus MenuBar barre=new MenuBar();
Créer un Menu Menu menu1=new Menu("Fichier");
MenuItem i1=new MenuItem("Nouveau");
Créer les éléments de menu MenuItem i2=new MenuItem("Ouvrir");
MenuItem i3=new MenuItem("Enregistrer");
Ajouter les éléments de menu au menu1.add(i1);
Menu menu1.add(i2);
menu1.add(i3);
Ajouter le Menu créé dans la
barre.add(menu1);
barre de menu
20
Ajouter barre de menu à la fen.setMenuBar(barre);
fenêtre
Chapitre III: Interfaces Graphiques
II- AWT
5- Les Menus
Sous-menu
21
Chapitre III: Interfaces Graphiques
III- Gestions des événements
22
Chapitre III: Interfaces Graphiques
III- Gestions des événements
1- Interfaces des écouteurs « Listeners»
Pour gérer les événements et les actions Java dispose de plusieurs interface nommées
‘Listeners’ (écouteurs) :
• ActionListener
public void actionPerformed(ActionEvent e);
• MouseListener
public void mouseClicked(MouseEvent e);
• MouseMotionListener public void mouseEntered(MouseEvent e);
public
public void abstract void mouseDragged(MouseEvent
mouseExited(MouseEvent e); e);
• ItemListener public public
void abstract void mouseMoved(MouseEvent
mousePressed(MouseEvent e); e);
public void windowActivated(WindowEvent e);
publicvoid
public voidmouseReleased(MouseEvent
itemStateChanged(ItemEvente);e);
• KeyListener public void windowClosed(WindowEvent e);
public void windowClosing(WindowEvent e);
public void keyPressed(KeyEvent e);
• TextListener public void windowDeactivated(WindowEvent e);
public void keyReleased(KeyEvent e);
public void windowDeiconified(WindowEvent e);
public void
Public keyTyped(KeyEvent e); e)
TextValueChanged(TextEvent
• WindowListener public void windowIconified(WindowEvent e);
public void windowOpened(WindowEvent e);
23
Chapitre III: Interfaces Graphiques
III- Gestions des événements
2- Trois étapes à suivre
Pour gérer les événements et les actions Java, il faut suivre 3 étapes
1) Implémenter l’interface selon l’événement
Exemple : public class Test implements ActionListener {…}
2) Enregistrez le composant auprès de Listener (Ecouteur)
Exemple : bouton1.addActionListener(this)
3) Ecrire le code de la méthode déclenchée par l’événement
Exemple : public void actionPerformed(ActionEvent e){
System.out.print("Vous avez cliquer sur Bouton1");
24
Chapitre III: Interfaces Graphiques
III- Gestions des événements
3- Exemple 1 :
25
Chapitre III: Interfaces Graphiques
III- Gestions des événements
3- Exemple 2 :
26
Chapitre III: Interfaces Graphiques
III- Gestions des événements
3- Exemple 3 :
27
Chapitre III: Interfaces Graphiques
Exercice
-
Ecrire un programme sous java qui permet de faire des calculs des deux nombres entrés,
utiliser l’API AWT.
Nombre 1 1 Nombre 2 1 Resultat1
+
-
*
=
/
Effacer
28
Tp_3_à rendre avant la prochaine séance
29
Chapitre III: Interfaces Graphiques
IV- API Swing
30
Chapitre III: Interfaces Graphiques
IV- Swing
L’API Swing est utilisée pour créer des applications basées sur des fenêtres. Il est
construit basant sur de l'API AWT. Elle est entièrement écrit en java.
Contrairement à AWT, Java Swing fournit des composants légers et indépendants de la
plate-forme.
Le package javax.swing fournit des classes pour l'API Swing telles que:
JButton, JTextField, JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser ...
31
Chapitre III: Interfaces Graphiques
IV- Swing
32
Chapitre III: Interfaces Graphiques
IV- Swing
1- Méthodes plus Utilisées :
public void add(Component c)
public void setSize(int width,int height)
public void setLayout(LayoutManager m)
public void setVisible(boolean b)
public void setBounds(int x,int y, int width,int height)
33
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
34
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
a- Etiquette
JLabel()
JLabel(String s)
JLabel(Icon i)
JLabel(String s, Icon i, int horizontalAlignment)
Exemple
35
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
b- Bouton
JButton()
JButton(String )
JButton(Icon i)
Exemple
36
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
c- Zones de texte :
JTextField
JPasswordField
JTextArea
37
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
c- Zones de texte :
JTextPane JEditorPane
38
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
d- Case à cocher
JCheckBox()
JChechBox(String s)
JCheckBox(String text, boolean selected)
Exemple
39
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
e- Bouton radio
JRadioButton()
JRadioButton(String s)
JRadioButton (String text, boolean selected)
Exemple
40
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
f- Les listes : JComboBox
JComboBox()
JComboBox(Object[] items)
JComboBox(Vector<?> items)
Exemple
41
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
g- Les listes: JList
JList()
JList(ary[] listData)
JList(ListModel<ary> dataModel)
Exemple
42
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
h- JSpinner
JSpinner()
JSpinner(SpinnerModel model)
Exemple
43
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
i- Barre de défilement
JScrollBar()
JScrollBar(int orientation)
JScrollBar(int orientation, int value, int extent, int min, int max)
Exemple
44
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
j- Glissière
JSlider()
JSlider(int orientation)
JSlider(int min, int max)
JSlider(int min, int max, int value)
JSlider(int orientation, int min, int max, int value)
Exemple
45
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
k- Barre de progression
JProgressBar()
JProgressBar(int min, int max)
JProgressBar(int orient)
JProgressBar(int orient, int min, int max)
Exemple
46
Chapitre III: Interfaces Graphiques
IV- Swing
2- Les Composants standards:
l- Tableau
JTable()
JTable(Object[][] rows, Object[] columns)
Exemple
47
Chapitre III: Interfaces Graphiques
IV- Swing
3- Les conteneurs(panels):
a- JPanel
JPanel est une classe de conteneur la plus simple. Il fournit un espace dans lequel une
application peut attacher n'importe quel autre composant.
Exemple
48
Chapitre III: Interfaces Graphiques
IV- Swing
3- Les conteneurs(panels):
b- JscrollPane
Un JscrollPane est utilisé pour créer une vue défilante d'un composant. Lorsque la taille de
l'écran est limitée, nous utilisons un volet de défilement pour afficher un grand composant
ou un composant dont la taille peut changer dynamiquement.
Exemple
49
Chapitre III: Interfaces Graphiques
IV- Swing
3- Les conteneurs(panels):
c- JTabbedPane
La classe JTabbedPane est utilisée pour passer d'un groupe de composants à un autre en
cliquant sur un onglet avec un titre ou une icône données.
Exemple
50
Chapitre III: Interfaces Graphiques
IV- Swing
3- Les conteneurs(panels):
d- JSplitPane
JSplitPane est utilisé pour diviser deux composantes. Les deux composants sont divisés en
fonction de l'aspect et de la convivialité de la mise en œuvre, et ils peuvent être
redimensionnés par l'utilisateur.
Exemple
51
Chapitre III: Interfaces Graphiques
IV- Swing
3- Les conteneurs(panels):
e- JEditorPane
La classe JEditorPane est utilisée pour créer une simple fenêtre d'édition de texte. Cette
classe possède deux méthodes principales setContentType() et setText().
Exemple
52
Chapitre III: Interfaces Graphiques
IV- Swing
3- Les conteneurs(panels):
f- JTextPane
JTextPane est une sous-classe de la classe JEditorPane. JTextPane est utilisé pour les
documents stylisés avec des images et des composants intégrés.
Exemple
53
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
Il s'agit d'une Petite fenêtre pouvant servir à plusieurs choses :
• Afficher une information (message d'erreur, d'avertissement…) ;
• Demander une validation, une réfutation ou une annulation ;
• Demander à l'utilisateur de saisir une information dont le système a besoin ;
• Etc.
Le nom de la classe est : JOptionPane
54
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
Méthodes pour préciser le type de message
static void showMessageDialog(Component parentComponent, Object message)
static int showConfirmDialog(Component parentComponent, Object message)
static String showInputDialog(Component parentComponent, Object message)
Exemple:
JOptionPane mess1=new JOptionPane();
mess1.showMessageDialog(null,"Salamo Alikoum\n Salut tout le monde \n Hi everybody.");
55
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
a- Les boîtes d'information
static void showMessageDialog(Component parentComponent, Object message, String title, int messageType)
56
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
a- Les boîtes d'information
static void showMessageDialog(Component parentComponent, Object message, String title, int messageType)
57
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
a- Les boîtes d'information
Pour personnaliser l’icone utiliser cette méthode :
static void showMessageDialog(Component parentComponent, Object message, String title, int messageType, Icon icone )
Exemple
58
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
b- Les boîtes de confirmation
Static int showConfirmDialog(parentComponent, message, title, int optionType, int messageType)
optionType peut être :
JOptionPane.YES_NO_CANCEL_OPTION
JOptionPane.YES_NO_OPTION
JOptionPane.DEFAULT_OPTION
59
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
b- Les boîtes de confirmation
Valeur Valeur int
Les valeurs renvoyées sont :
JOptionPane.CLOSED_OPTION -1
JOptionPane.OK_OPTION 0
JOptionPane.NO_OPTION 1
JOptionPane.CANCEL_OPTION 2
60
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
c- Les boîtes de saisie(avec une champ de texte)
static String showInputDialog(Component parentComponent, Object message)
61
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
c- Les boîtes de saisie (avec une liste de choix)
static String showInputDialog(parentComponent, message, title, messageType, icon, selectionValues [],
initialSelectionValue)
Exemple
62
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
d- les boîtes de dialogue personnalisées
Utilser pour cela la classe : JDialog
Exemple
63
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
e- Choisir une couleur (JColorChooser)
Constructeur
JColorChooser()
JColorChooser(color initialcolor)
Methode
static Color showDialog(Component c, String title, Color initialColor)
Exemple
64
Chapitre III: Interfaces Graphiques
IV- Swing
4- Les Boites de dialogue:
f- Choisir un fichier(JFileChooser)
Constructeur
JFileChooser()
JFileChooser(File currentDirectory)
JFileChooser(String currentDirectoryPath)
Methode
int showOpenDialog(null);
int showSaveDialog(null);
…
Exemple
65
Chapitre III: Interfaces Graphiques
IV- Swing
5- Les Menus:
66
Chapitre III: Interfaces Graphiques
IV- Swing
7- L’arbre:JTree
67
Chapitre III: Interfaces Graphiques
IV- Swing
10- Quelques trucs utiles:
68
Chapitre III: Interfaces Graphiques
TP 4 __à rendre avant la prochaine séance
69