Conception d’IHM en Java

Slides:



Advertisements
Présentations similaires
1 Tracer un graphique avec la calculatrice graphique Cliquez sur le modèle de votre calculatrice.
Advertisements

Conception d’IHM en Java
1 Swing par la pratique contrat Creative Commons Paternité-Pas d'Utilisation Commerciale-Partage des Conditions Initiales à l'Identique.
Conception d’IHM en Java
X.Blanc & J.Daniel Swing et Applet X.Blanc & J.Daniel
Evénements Java Beans Java RMI
Les Interfaces Graphiques
Affichage interactif, bidimensionnel et incrémental de formules mathématiques Hanane Naciri et Laurence Rideau INRIA Sophia Antipolis CARI'2000.
Gestion des événements (suite)
Audrey Occello Cédric Joffroy Anne-Marie Dery
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Gestionnaires de géométrie
Page 1 Les applets Jacques Lonchamp. Page 2 Présentation Une applet est téléchargée à partir dune machine distante qui fournit le code. Ce chargement.
Voisin-Polian : Introduction à Java 1 Introduction à Java - AWT - Frédéric VOISIN – Nicole POLIAN FIIFO - « Remise à Niveau »
Les Interfaces graphiques Les Swing. Les interfaces graphiques: Introduction Une application est une boîte noire. Prend des entrées et produit des sorties.
Les composants Graphiques Atomiques
TP2 ... MVC ? JList JLabel JSlider ImageLibrary Contrôleur Vue Modèle
contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage des Conditions Initiales à l'Identique.
Interaction Directe contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage des Conditions Initiales à l'Identique.
Modèles d’architecture
contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage des Conditions Initiales à l'Identique.
contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage des Conditions Initiales à l'Identique.
Vos premiers pas en Swing
Retour sur MVC. Introduction aux IHM et à la réflexivité Java Vos premiers pas en Swing.
Vos premiers pas en Swing
Vos premiers pas en Swing
Systèmes d’exploitation
Interface Homme Machine IHM Pro
Page de garde Les librairies AWT et Swing ESSI2, Septembre 2002
Java : Interface Homme-Machine
Langage SysML.
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Programmation événementielle et composants dinterface (« widgets »)
Ce bouton vous donne accès à la plupart des commandes qui étaient auparavant sous le menu Fichier en plus des options de l'application.
1 1 Université Evry Val d'Essonne Y. Laborde Une calculatrice (sans MVC) fonctionnant sur la base d'un modèle en Java.
Interface graphiques.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Graphical User Interface (GUI)
Gestion des événements liés à la fenêtre et aux périphériques dentrée.
Graphical User Interface
Support d’accompagnement de l’atelier Excel – les bases
Programmation concurrente
Java Swing.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Android View, onClick, Activity, Modèle Vue Contrôleur
TYPES DE COMPOSANTES SWING Cours 420-B43. On peut distinguer 3 Niveaux 3 niveaux Haut niveau : toute application graphique doit comprendre au moins une.
Tuesday, September 30,  Il y a trois types de données qui sont entrées dans les feuilles de calcules. There are three types of data entered in.
‘‘Open Data base Connectivity‘‘
Biologie – Biochimie - Chimie
Java : Graphique Swing juin 2006 Brigitte Groléas.
Javascript 2° PARTIE : EVENEMENTS ET OBJETS
Cours 91 9 Interfaces graphiques avec awt. Cours 92 Plan Introduction : deux bibliothèques graphiques 1.Comment se dessine une fenêtre ?  Un exemple.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Interfaces graphiques. Composants d'interface utilisateur graphique (GUI) 1 Bibliothèques Awt et Swing Procédures communes pour l'utilisation de ces clases.
14 La gestion d’événements
Interface graphique PO2 ( ) Chapitre 3 Gestionnaires géométrie.
Construire une interface graphique en Java
Iup MIAGe 3° année Projet MIAGe Toulouse – Groupe 21 Charte graphique.
 1) Il faut connaître le modèle et son fonctionnement  2) Définir le contrôle que l’on veut faire ouvrir, fermer, afficher, etc.) sur le modèle  3)
Cours d’introduction à Java Christophe Vaudry IUT - Cycle IRISM Année
Les interfaces de gestion d’événements (la suite).
** Flash séance 2 Action script. ** Action Script Ajoute de l’interactivité Permet de contrôler les clips  Langage de programmation orienté objet.
Java Swing. Principes de base  Des composants graphiques (exemple: JFrame, JButton …)  Hiérarchie de classes  Des événements et les actions à effectuer.
Les vues O.Legrand G.Seront. Les vues Dans Android, une ihm est composée de vues. Ces vues.
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 7 IJA Les interfaces graphiques JAVA.
Interfaces graphiques en JAVA
Présentation SWING Siwar hadj hassen Omar ben yahya.
Passerelle M1 remise à niveau
Les interfaces de gestion d’événements (la suite)
Transcription de la présentation:

Conception d’IHM en Java Do it with Swing Cedric.Dumas@emn.fr contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage des Conditions Initiales à l'Identique 2.0 France License

GUI Toolkits / Boîtes à Outils : Swing Window Manager Graphics(2D) OpenGL Java Machine Virtuelle Système d'Exploitation

Construire une application (en Swing) 1 fenêtre 1 arbre d'affichage 1 gestionnaire d'espace des widgets des gestionnaires d'évènements

1 – Une fenêtre Structurer l’espace d’affichage Partager la ressource écran Dépendante du Gestionnaire de fenêtres Fenêtre = zone autonome pour l’affichage pour les entrées systeme de fenetrage -> structure l'espace d'affichage -> plusieurs applications en meme temps (multi plexage de l'ecran) Fenêtre = zone autonome vis à vis de l’affichage des entrées vue d'une application, une fenetre est comme un écran fenetre rectangulaire ne general, visible de l'utilisateur manipulable pas l'utilisateur = role du window manager NE pas confondre : - systeme de fenetrage : couche logicielle qui s'interpose entre les applications et le systeme graphique, et qui fournit notamment la notion de fenetre aux applications - gestionnaire de fenetre : module logiciel qui fournit une interface de manipulation des fenetres à l'utilisateur Il est : - integre au systeme de fenetrage (win) - appli séparée (X) - a la charge de chaque application (Mac Toolbox) Communication entre appli et systeme a fenetre : - envoyer des requetes graphiques : creer, detruire, déplacer, changer de taille (base commune) afficher des objets graphiques dans la fenetre (boutons, etc) - récupérer des évènements entrées de l'utilisateur evt liés au systeme de fenetrage : fenetre déplacée, etc (note : le gestionnaire de fenetre peut representer une fenetre sous différente forme, c'est independant du systeme de fenetrage)

1 – Une fenêtre Accès partagé à l'écran Subdivision de l'écran en fenêtres Chaque fenêtre est positionné (x, y, z) et dimensionnée (largeur x hauteur)

2 – Un arbre d'affichage Afficher = appeler une succession de fonctions graphiques Représentation sous forme d'un arbre d'affichage

2 – Arbre Swing JFrame JTree JPanel JToolbar JButton JRadioButton

2 – Arbre Swing JFrame JToolBar JPanel JTextArea JButton JList

2 – Arbre Swing JFrame JMenuBar JMenu File JMenu View JMenu Help JMenuItem Open JMenuItem Save JMenuItem Save as… JMenuItem Undo JMenuItem JMenuItem About… JMenuItem Quit JMenuItem Paste JMenuItem Copy

2 – Un arbre d'affichage Les langages à objets permettent de représenter ces nœuds comme des objets ayant une interface Tous les nœuds héritent d'une classe de base (JComponent dans Swing) Chaque composant particulier spécifie une interface particulière adaptée à sa sémantique

2 – Un arbre d'affichage Basé sur des containers générique gère collection de composants design Pattern composite

2bis – Layout Manager Liés aux containers

2bis – Calcul du placement Le placement est calculé dans les conteneurs Soit les composants sont placés explicitement (x, y, largeur, hauteur) Soit ils sont gérés par un « LayoutManager » qui calcul ces paramètres dynamiquement besoins du composant (taille min, max, normale) + positionnement relatif

2bis – Mise en place d ’un gestionnaire de placement Les conteneurs définissent la méthode setLayout(layoutManager) pour changer le gestionnaire par défaut Le gestionnaire par défaut change d ’une classe de conteneur à une autre La méthode pack() déclenche le calcul du placement La méthode invalidate() rend le placement courant invalide

2bis – Les gestionnaires de placement... FlowLayout Place les composants de gauche à droite CardLayout Superpose les composants GridLayout Découpe en une grille régulière sur laquelle les composants sont placés GridBagLayout Découpe en une grille et place les composants sur une ou plusieurs cases

2bis – ...ou Layout Manager BorderLayout Aucun : .setBounds(x,y,h,l); Découpe en 5 régions: south, north, east, west, center Aucun : .setBounds(x,y,h,l);

3 – les widgets

3 – Les composants graphiques interactifs = widgets Le nœud est capable de s'afficher et de gérer les événement On lui ajoute une interface de communication suivant sa sémantique bouton, label, menu, ligne de texte, etc. On appelle ce nœud communicant un composant ou widget ou gadget ou objet de contrôle.

3 – JMenu Une instance de JMenuBar par Jframe setJMenuBar(JMenuBar mb); Plusieurs Jmenu par JMenuBar add(JMenu jm); Plusieurs JMenuItem/JCheckboxMenu par Jmenu add(JMenuItem mi); addSeparator(); Structurez !!!

3 – JPanel JPanel JScrollPane conteneur un seul composant ! barres de défilement JScrollPane sp = new JScrollPane(); sp.add(monJLabel); sp.setViewportView (monJLabel); composants implémentant Scrollable class MonLabel extends Jlabel implements Scrollable Panel ScrollPane

3 – Les composants de SWING Dialog Frame Tabbed Pane Split pane Layered pane Internal frame Tool bar

3 – Composants de Swing List File chooser Tool tip Color chooser Progress bar Slider Table Text Tree

4 – un gestionnaire d'évènements Les dispositifs d'entrée génèrent des événements (petit bloc mémoire contenant un type, un temps, une fenêtre cible et des détails suivant le type) Swing achemine l'événement vers un nœud cible Le nœud gère l'événement, ce qui peut modifier l'état de l'arbre d'affichage On passe à l'événement suivant

4 – Acheminement des événements Positionnel (souris) on regarde quel est le nœud de l'arbre le plus près de la position On l'envoie au plus prés, qui renvoie a son père s'il ne veut pas le gérer Non positionnel (clavier) si un nœud à le "focus", on lui envoie traduction d'une touche en caractère(s) ou action sinon, on cherche une cible gestion des raccourcis clavier

4 – Arbre Swing Y X Event |time | (X,Y) JFrame JToolBar JPanel JTextArea JButton JList Event |time | (X,Y)

4 – Les événements Package java.awt.event.* Héritent de la classe java.awt.AWTEvent identificateur (numéro unique) consumed (a-t-il été utilisé?) source (qui l'a émis) Envoyés dans une file unique Toolkit.getSystemEventQueue() Lus par un thread spécique

4 – Types d’événements

4 – Association de gestionnaires d ’actions Pour chaque famille d ’événements, une interface « listener » est définie MouseListener, MouseMoveListener, KeyListener, etc. Chaque classe composant définit « add<nom>Listener( <nom>Listener ) Frame ActionListener Button addActionListener( ActionListener) actionPerformed( ActionEvent e)

4 – Les listeners Chaque composant peut renvoyer certains événements à l'application si elle le demande Le renvoi se fait par un Listener actionListener, AdjustmentListener, FocusListener, InputMethodListener, ItemListener, KeyListener, MouseListener, MouseMotionListener, TextListener, WindowListener

4 – Sur tous les composants Swing component listener Listens for changes in the component's size, position, or visibility. focus listener Listens for whether the component gained or lost the ability to receive keyboard input. key listener Listens for key presses; key events are fired only by the component that has the current keyboard focus. mouse listener Listens for mouse clicks and mouse movement into or out of the component's drawing area. mouse-motion listener Listens for changes in the cursor's position over the component. mouse-wheel listener (introduced in 1.4) Listens for mouse wheel movement over the component.