Vous êtes sur la page 1sur 5

TP1 Mme Chefrour.

Programmation Evénementielle:
IHM: Interaction Homme Machine est généralement réalisée à travers des interfaces graphiques
(GUI: Graphical User Interface) permettant d’assurer la communication entre l’humain et la machine
(système informatique).
L’implémentation des interfaces graphiques s’appuie sur la programmation événementielle
basée sur:
 La création de composants graphiques (boutons, menus, champs de saisie, …) sur une
interface;
 La gestion des événements déclenchés par un utilisateur sur ces composants (clic bouton
pour quitter, saisie du nom d’une personne sur une zone texte pour la stocker dans une BDD,
choix des produits à acheter par sélection sur des cases à cocher, …).
La programmation événementielle peut être réalisée avec n’importe quel langage de programmation
en utilisant des librairies (toolkits) graphiques, par exemples :
Java: - AWT (Abstract Windowing Toolkit); - Swing ; - SWT(Standard Widget Toolkit);
C++ : Qt ; Web : JQuery.
Java comprenait dans sa première version (1.0), seule la librairie AWT pour implémenter des
interfaces graphiques.
L’utilisation des composants d'AWT est considérée lourde puisque la création et la gestion de ces
composants sont fortement liées au système d’exploitation :
Par exemple: l’instanciation d’un objet par Button de AWT fait appel au composant bouton du système
d’exploitation (bouton windows sous windows).
 Une couche d’adaptation entre le java et le système d’exploitation.

 Pour y remédier, la librairie Swing fut apparue dans la version java (1.2)
- L’implémentation des interfaces graphiques avec Swing repose sur des composants purement
java, qui sont légers et simples à utiliser.
Toolkit: Java Swing:

 Tous les composants de Java Swing descendent de la même classe => JComponent
 JComponent descend elle-même de la classe Container de AWT.
 Cette hiérarchisation très forte permet de mettre en œuvre facilement les composants et d’en
créer d’autre à l’aide de l’héritage (proposer des méthodes communes à tous les composants) .
 Tous les composants de Swing commencent par la lettre J, et se trouvent dans le paquage
javax.swing.*.
Composants de Swing:

1
TP1 Mme Chefrour. A

Interacteurs:

2
TP1 Mme Chefrour. A

Boutons:

Texte:

Conteneurs:

3
TP1 Mme Chefrour. A

Fenêtres:

Fenêtre (Jframe):

 Les applications graphiques sont principalement construites à partir de la classe de base JFrame. Ce
dernier permet de construire une fenêtre comportant une bordure, un titre, une taille et une
localisation sur écran.
Un exemple d’instanciation d’une simple fenêtre avec JFrame :
import javax.swing.JFrame;
public class Fenetre extends JFrame
{ public Fenetre()
{
this.setTitle("Titre de la fenêtre ");
this.setSize(700, 400);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[]A)
{ Fenetre fenetre=new Fenetre(); }
}

4
TP1 Mme Chefrour. A

 Dans l’exemple précédent, la fenêtre est centrée sur écran (Avec


setLocationRelativeTo(null)).
 Pour la situer sur une position bien définie de votre écran, il suffit d’appliquer la méthode
setLocation(int X, int Y). Les coordonnées (x,y), exprimées en pixels, sont basées sur un
repère, dont O l'origine est représentée par le coin supérieur gauche.
 - les valeurs de X positives déplacent la fenêtre vers la droite tandis que les négatives la font
sortir de l'écran par la gauche.
 - La même règle s'applique aux valeurs de l'axe y, les valeurs positives de Y font descendre la
fenêtre depuis l'origine tandis que les négatives la font sortir par le haut de l'écran.

Panel (JPanel):
 Le conteneur le plus simple de Swing est le panneau JPanel (défini comme le conteneur par
défaut de JFrame).
 Sa vocation est d'accueillir d'autres objets de même type ou des objets de type composant
(boutons, cases à cocher…).
import javax.swing.JFrame;
import java.awt.Color;
import javax.swing.JPanel;
public class Fenetre extends JFrame {
public Fenetre() {
this.setTitle("Ma première fenêtre Java ");
this.setSize(400, 100);
this.setLocationRelativeTo(null);
JPanel pan = new JPanel();
pan.setBackground(Color.ORANGE);
this.setContentPane(pan);
this.setVisible(true);
}}
public static void main(String[]A)
{ Fenetre fenetre=new Fenetre(); }
}

Vous aimerez peut-être aussi