Vous êtes sur la page 1sur 2

1

INTERFACE HOMME MACHINE


Mr. A .REZOUG
TP 01 LA FENÊTRE PRINCIPALE
1. Les concepts d’objet et d’encapsulation
En programmation structurée, un programme est formé de la réunion de différentes procédures et de
différentes structures de données généralement indépendantes de ces procédures.
En P.O.O., un programme met en œuvre différents objets. Chaque objet associe des données(champ)
et des méthodes (procédures) agissant exclusivement sur les données de l’objet.
Encapsulation des données : Cela signifie qu’il n’est pas possible d’agir directement sur les données
d’un objet ; il est nécessaire de passer par ses méthodes, qui jouent ainsi le rôle d’interface obligatoire.
 Elle facilite considérablement la maintenance : une modification éventuelle de la structure des
données d’un objet n’a d’incidence que sur l’objet lui-même ;
 l’encapsulation des données facilite grandement la réutilisation d’un objet.

2. Le concept de classe
Le concept de classe correspond simplement à la généralisation de la notion de type que l’on
rencontre dans les langages classiques. En effet, une classe n’est rien d’autre que la description d’ un
ensemble d’objets ayant une structure de données commune et disposant des mêmes méthodes.
Les objets apparaissent alors comme des variables d’un tel type classe (en P.O.O., on dit aussi qu’un
objet est une instance de sa classe). Bien entendu, seule la structure est commune, les valeurs des
champs étant propres à chaque objet. En revanche, les méthodes sont effectivement communes à
l’ensemble des objets d’une même classe.
Lorsque, comme cela arrive parfois dans l’écriture d’interfaces graphiques, on est amené à ne créer
qu’un seul objet d’une classe donnée, la distinction entre les notions d’objet et de classe n’est pas
toujours très évidente.

3. Les programmes à interface graphique (G.U.I.)


Dans ces programmes, la communication avec l’utilisateur se fait par l’intermédiaire de composants
tels que les menus déroulants, les menus surgissants, les barres d’outils ou les boîtes de dialogue, ces
dernières pouvant renfermer des composants aussi variés que les boutons poussoirs, les cases à cocher,
les boutons radio, les boîtes de saisie, les listes déroulantes.... On parle de programmation
événementielle, expression qui traduit bien le fait que le programme réagit à des évènements
provoqués (pour la plupart) par l’utilisateur.

4. Composant d’interface Graphique


Le paquetage javax.swing contient les classes utilisées pour construire une interface utilisateur
graphique. Une interface utilisateur Swing est un assemblage de composants (components en anglais)
affichés dans une fenêtre ou un autre type de conteneur (container). L’utilisateur actionne ces
composants pour piloter un programme.

La classe JFrame

Pour créer une fenêtre graphique, on dispose, dans le paquetage nommé javax.swing, d’une classe
standard nommée JFrame, possédant un constructeur sans arguments. Par exemple, avec : JFrame
fen = new JFrame() ;
2

On crée un objet de type JFrame et on place sa référence dans fen. Mais si on se limite à cela,
rien n’apparaîtra à l’écran. Il est en effet nécessaire de demander l’affichage de la fenêtre en
appelant la méthode setVisible1 :
fen.setVisible (true) ; // rend visible la fenetre de reference fen
Comme par défaut, une telle fenêtre est créée avec une taille nulle, il est nécessaire d’en définir
les dimensions auparavant ; par exemple :
fen.setSize (300, 150) ; // hauteur de 150 pixels et une largeur de 300 pixels
En général, on choisira d’afficher un texte précis dans la barre de titre. Pour ce faire, on utilisera
la méthode setTitle, par exemple : fen.setTitle ("Ma premiere fenetre") ;
Voici un programme très simple de création d’une fenêtre graphique :
import javax.swing.* ; // importer le package swing
public class Main // nom de la classe
{ public static void main (String args[]) // la fonction principale main
{
JFrame fen = new JFrame() ; // instantiation de la classe JFrame par un objet fen
fen.setSize (500, 350) ; // taille de la fennetre
fen.setTitle ("Ma premiere fenetre") ; // titre de la fennetre
JLabel texte = new JLabel("Hello World");
fen.getContentPane().add(texte);
fen.setVisible (true) ;
}
}

Vous aimerez peut-être aussi