PROSIT 4 JAVA-UML Nom du PROSIT => UML / JAVA Thème ou

publicité
PROSIT 4 JAVA-UML
Nom du PROSIT =>
Thème ou sujet du
Prosit
Rédacteur
UML / JAVA
Les IHM en Java
Desmaison / Monceret
MOTS CLEFS / A DEFINIR
IHM :
L'Interaction Humain Machine, Interaction Homme Machine ou Interface Homme Machine (IHM) étudie la façon
dont les humains interagissent avec les ordinateurs ou entre eux à l'aide d'ordinateurs, ainsi que la façon de concevoir
des systèmes informatiques qui soient ergonomiques, c'est-à-dire efficaces, faciles à utiliser ou plus généralement
adaptés à leur contexte d'utilisation.
AWT :
Un composant AWT (Abstract Window Toolkit) lors de sa création est associé à une fenêtre distincte (un homologue,
peer en anglais) gérée par le système d'exploitation sous-jacent. Et c'est cet homologue qui est responsable de son
apparence. Cette "manière" de faire, bien qu'elle ait fait ses preuves et qu'elle ait permis au langage Java de s'imposer,
est très lourde (perte de performance, et consommation excessive de mémoire). C'est pour cette raison que l'on qualifie
les composants AWT par heavyweight (littéralement, poids lourds).
Swing :
Par opposition, les composants Swing sont simplement dessinés à l'intérieur de leur conteneur comme s'il s'agissait
d'une image, et aucun homologue du système sous jacent ne leur est affecté. C'est pourquoi ils sont qualifiés de
lightweight (composants allégés).
Graphics :
La classe Graphics fournit, entre autre, des méthodes pour dessiner des formes (rectangles, lignes…). Cette classe est
abstraite et elle ne possède pas de constructeur public : il n'est pas possible de construire des instances de graphics
nous même. Les instances nécessaires sont fournies par le système d'exploitation qui instanciera via à la machine
virtuelle une sous classe de Graphics dépendante de la plateforme utilisée.
ERP / PGI :
Les ERP (en anglais Enterprise Resource Planning), aussi appelés Progiciels de Gestion Intégrés (PGI), sont des
applications dont le but est de coordonner l'ensemble des activités d'une entreprise (activités dites verticales telles que
la production, l'approvisionnement ou bien horizontales comme le marketing, les forces de vente, la gestion des
ressources humaines, etc.) autour d'un même système d'information.
Bibliothèque en Java:
Une bibliothèque est un ensemble de classes et de ressources (images, sons, ...) regroupées sous un même nom. Cela
sert en fait à regrouper un certain type de fonctionnalités qui peuvent servir dans d'autres projets. La bibliothèque la
plus utilisée est celle par défaut, c'est elle qui rassemble toutes les classes et ressources fournies par la JDK de base.
Elle sert tellement, qu’elle ne porte pas de nom, elle est incluse automatiquement. Si bien qu'on n'a pas besoin de la
spécifiée.
JPanel :
Ce composant est un conteneur léger qui sert souvent à regrouper d'autres composants dans des interfaces utilisateur
graphiques. On utilise setLayout() pour spécifier un nouveau gestionnaire de disposition qui contrôle l'agencement des
composants à l'intérieur du JPanel. Ce composant dispose juste de quelques méthodes comme les constructeurs. Par
contre il hérite de JComponent qui dispose d'énormément de méthodes dont quelques unes sont présentées ci-dessous.
JFrame :
Cette classe sert à afficher la fenêtre principale (ou plusieurs) d'une application. Chaque JFrame possède un unique
enfant JRootPane automatiquement créé. Il ne faut pas ajouter directement des enfants au JFrame, mais il faut appeler
getContentPane() et ajouter les enfants au conteneur renvoyé par cette méthode. De même, si l'on installe un
gestionnaire de disposition, il faut le faire sur le conteneur renvoyé par getContentPane(). Le gestionnaire de
disposition par défaut de ce conteneur est une instance de java.awt.BorderLayout.
Gpane :
N’existe pas. L’interface “Gpane” est une fausse piste.
setBounds :
Modifie les coordonnées et la taille de la fenêtre. Cette méthode effectue les modifications en une seule fois et permet
de supprimer les réaffichages intermédiaires.
GridLayout :
Ce gestionnaire arrange les composants sur une grille dont on spécifie le nombre de cases horizontales et verticales.
Un composant est redimensionné afin de prendre tout l'espace de la cellule, et chaque cellule est de taille identique.
Lorsque la fenêtre est redimensionnée, les cellules se partagent équitablement l'espace disponible. Les composants
sont ajoutés ligne par ligne à partir de la cellule du coin supérieur gauche.
FlowLayout:
Ce gestionnaire aligne horizontalement les composants, en préservant la taille de ceux-ci, jusqu'à ce qu'il n'y ait plus
de place. Lorsque la ligne est remplie, les composants suivant sont placés à la ligne suivante et ainsi de suite.
Par défaut les composants sont centrés horizontalement. Lorsque la taille du conteneur est modifiée, les composants
sont réorganisés automatiquement. FlowLayout est le gestionnaire de mise en forme par défaut des JPanel.
Evenement:
La programmation événementielle constitue la caractéristique essentielle d'une interface graphique. La plupart des
événements sont créés par des composants qu'on aura introduits dans la fenêtre.
Exemple d’évènement : clic de souris, mouvement de souris, validation d’un bouton...
Overflow:
Utilisé dans l’expression « buffer overflow ». Phénomène se produisant lorsque le tampon (buffer) ne peut pas traiter
correctement toutes les données qu'il reçoit. Cela arrive quand le taux de transfert de données du destinataire est trop
inférieur à celui de l'expéditeur. Un buffer Overflow entraîne très souvent un crash du système cible.
Les « imports » des bibliothèques graphiques
Comment les utilise on ?
‘’
Le paquetage java.awt (=Abstract Window Toolkit) contient l'ensemble des classes à utiliser pour construire et gérer
l'interface homme-machine dans application ou une applet. Pour utiliser l'ensemble de ces classes dans ses propres
classes, mettre en tête de source :
import java.awt.*
‘’
Source :
http://www.ac-creteil.fr/util/programmation/java/cours_java/c-ihm.html
‘’
On peut également dessiner directement sur un composant graphique, et y poser des chaînes de caractères, des dessins,
des images, grâce à la classe java.awt.Graphics.
‘’
Source :
http://www.ac-creteil.fr/util/programmation/java/cours_java/c-ihm.html
Les imports des bibliothèques graphiques s’utilisent avec le mot clé « import ». Nous réaliserons ces imports de
bibliothèque au besoin.
Exemple :
import javax.swing.* ;
import java.awt.* ;
//import des composant graphique swing
//import des composant graphique awt
En ce qui concerne les composant graphique de la classe graphique, ils sont compris dans « awt ».
Source :
Our brain.
* Que font elles ?
‘’
AWT est une collection de classes pour la réalisation d'applications graphiques ou GUI (Graphic User Interface).
Les composants qui sont utilisés par les classes définies dans ce package sont des composants dit "lourds" : ils
dépendent entièrement du système d'exploitation. D'ailleurs leur nombre est limité car ils sont communs à plusieurs
systèmes d'exploitation pour assurer la portabilité. Cependant, la représentation d'une interface graphique avec awt sur
plusieurs systèmes peut ne pas être identique.
AWT se compose de plusieurs packages dont les principaux sont:





java.awt : c'est le package de base de la bibliothèque AWT
java.awt.images : ce package permet la gestion des images
java.awt.event : ce package permet la gestion des événements utilisateurs
java.awt.font : ce package permet d'utiliser les polices de caractères
java.axt.dnd : ce package permet l'utilisation du cliquer/glisser
‘’
Source :
http://jmdoudoux.developpez.com/java/?page=chapitre_5_packages_bases#L5.3
*Quelles sont leurs différences ?
‘’
Tout d'abord, il faut rappeler que la librairie AWT a été développée pour la première sortie de Java version 1.0 du jdk
alors que Swing n'est apparue qu'à la version 1.2 du jdk (soit Java 2). Il en résulte donc des différences fondamentales
de conception entre les deux librairies.
Composant AWT :
Un composant AWT lors de sa création est associé à une fenêtre distincte (un homologue, peer en anglais) gérée par le
système d'exploitation sous-jacent. Et c'est cet homologue qui est responsable de son apparence. Cette "manière" de
faire, bien qu'elle ait fait ses preuves et qu'elle ait permis au langage Java de s'imposer, est très lourde (perte de
performance, et consommation excessive de mémoire). C'est pour cette raison que l'on qualifie les composants AWT
par heavyweight (littéralement, poids lourds).
Composant Swing :
Par opposition, les composants Swing sont simplement dessinés à l'intérieur de leur conteneur comme s'il s'agissait
d'une image, et aucun homologue du système sous jacent ne leur est affecté. C'est pourquoi ils sont qualifiés de
lightweight (composants allégés).
‘’
Source :
http://java.developpez.com/faq/java/?page=generalitesAWTSwing#GRAPHIQUE_AWT_vs_SWING
‘’
Pour des question de rapidité, tous les composants sont « légers » , et Swing est écrit entièrement en Java pour la
portabilité.
‘’
Source :
http://java.developpez.com/livres/penserenjava/?chap=14&page=0
Qu’est-ce qui compose une interface en Java
‘’
Button : classe des boutons à cliquer
Canvas : objet zone de dessin
Checkbox : boîte à cocher
CheckboxGroup : objet qui regroupe plusieurs objets Checkbox, et réalise un ensemble de boutons radio.
Choice : objet qui permet de gérer une liste de choix
Label : affiche simplement une ligne de texte sans édition (étiquette)
List : objet spécialisé dans l'affichage d'une liste d'items
Scrollbar : objet pour choisir une valeur dans un intervalle.
TextComponent :
TextField : une simple ligne d'édition.
TextArea : zone d'édition de texte de plusieurs lignes, munie de barres de défilement.
Container : classe abstraite (sans objet) qui sert de support à d'autres composants. principales méthodes : add(),
remove()
Panel : c'est un objet conteneur qui contient lui-même d'autres conteneurs, placé souvent dans un objet Frame.
Applet
Window : fenêtre d'application sans bordure, ni barre de menus; c'est un conteneur, géré par défaut par un
BorderLayout.
Rarement instanciée directement, on utilise ses sous-classes Dialog et Frame.
Qq méthodes : setVisible(), dispose(), pack()
Dialog : fenêtre de dialogue, qui dépend d'une fenêtre Frame, aussi conteneur
Frame : fenêtre encadrée affichable, redimensionnable : c'est la fenêtre typique d'une application graphique Java
‘’
Source :
http://www.ac-creteil.fr/util/programmation/java/cours_java/c-ihm.html
Quel est le principe des évènements
‘’
Le paquetage java.awt.event fournit des classes et des interfaces à utiliser avec des composants AWT ou Swing
capables de lancer des évnènements.
‘’
Source :
http://www.laltruiste.com/document.php?url=http://www.laltruiste.com/coursjava/package_javaawtevent.html
‘’
Chaque événement aboutit à la création d'un objet Event qui inclut entre autre le type d'événement et l'objet concerné.
‘’
Source :
http://perso.wanadoo.fr/isabelle.thieblemont/java/event.html
Faire fonctionner le programme
package FaireFoncProg;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
// import javax.graphic.*;
import java.awt.Graphics;
erreur, il n'importe pas la bonne librairie. Voir:
public class cadre1 extends JFrame{
public cadre1(){
JLabel Jnom = new JLabel("nom");
JLabel Jprenom = new JLabel("prenom");
JLabel Jtel = new JLabel("tel");
JTextField Tnom = new JTextField();
JTextField Tprenom = new JTextField();
JTextField Ttel = new JTextField();
JButton Bouton = new JButton("Inscrire");
JButton Annuler = new JButton("Annuler");
JPanel panneau = new JPanel();
//GPane monpanneau = new GPane(); erreur, Gpane n'existe pas
panneau.add(Jnom,null);
panneau.add(Tnom,null);
panneau.add(Jprenom,null);
panneau.add(Tprenom,null);
panneau.add(Jtel,null);
panneau.add(Ttel,null);
panneau.add(Bouton,null);
panneau.add(Annuler,null);
setContentPane(panneau);
setSize(400,200);
setVisible(true);
Jnom.setBounds(100,25,50,20);
Tnom.setBounds(150,30,75,15);
Jprenom.setBounds(100,50,50,25);
Tprenom.setBounds(150,55,75,15);
Jtel.setBounds(100,75,50,25);
Ttel.setBounds(150,80,75,15);
Bouton.setBounds(70,100,100,25);
Annuler.setBounds(170,100,100,25);
Bouton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
Bouton_actionPerformed(e);
}
});
Annuler.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
Annuler_actionPerformed(e);
}
});
}
void Bouton_actionPerformed(ActionEvent e){
System.exit(0);
}
void Annuler_actionPerformed(ActionEvent e){
System.exit(0);
}
}
Programme Personnel :
Téléchargement