Situation du cours d'interface graphique



Documents pareils
Java 7 Les fondamentaux du langage Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

TP1 : Initiation à Java et Eclipse

Environnements de développement (intégrés)

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Interfaces graphiques avec l API Swing

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Annexe : La Programmation Informatique

Eclipse atelier Java

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Construire des plug-ins pour SAS Management Console SAS 9.1

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Cours 1: Java et les objets

Projet de développement

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Bases Java - Eclipse / Netbeans

Initiation à JAVA et à la programmation objet.

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Chapitre I Notions de base et outils de travail

Introduction à Eclipse

INITIATION AU LANGAGE JAVA

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Programmation Orientée Objet

Java Licence professionnelle CISII,

Vulgarisation Java EE Java EE, c est quoi?

RMI le langage Java XII-1 JMF

Introduction à Java. Philippe Genoud.

TD/TP 1 Introduction au SDK d Android

Tutoriel BlueJ. Michael Kölling Mærsk Institute University of Southern Denmark. Version 1.4 fr-2 par le groupe Sigma 1 pour BlueJ Version 1.2.

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

ACTIVITÉ DE PROGRAMMATION

TP1 : Initiation à Java et Eclipse

Traitement de données

Manuel utilisateur Netviewer one2one

Remote Method Invocation (RMI)

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Procédure d'installation complète de Click&Decide sur un serveur

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Manuel d utilisation du site web de l ONRN

Manuel d utilisation NETexcom

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Création d'une interface graphique

Java Licence Professionnelle CISII,

Programmeur Java 1.4 et 5.0

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)

Le langage C. Séance n 4

Installation et prise en main

Tutorial pour une application simple

Systeme d'exploitation

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

Utilisation du logiciel Epson Easy Interactive Tools

TP1. Outils Java Eléments de correction

Logiciel de gestion de caisse et d ardoises

Plan du cours. Historique du langage Nouveautés de Java 7

LA CARTE D IDENTITE ELECTRONIQUE (eid)

Tutoriel code::blocks

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Création d un service web avec NetBeans 5.5 et SJAS 9

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

Projet de Veille Technologique

< Atelier 1 /> Démarrer une application web

Utiliser Java sans BlueJ

Prendre en main le logiciel ActivInspire 1.4

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

La base de données XML exist. A. Belaïd

Machine virtuelle Java pour Palm TX

Évaluation et implémentation des langages

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Google Drive, le cloud de Google

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

FileMaker Server 13. Guide de configuration de l'installation réseau

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Installation d'une galerie photos Piwigo sous Microsoft Windows.

L accès à distance du serveur

Programmer en JAVA. par Tama

TP1 : Initiation à l algorithmique (1 séance)

LES ACCES DISTANTS ET SECURISES. Installation et utilisation du client. Cisco AnyConnect VPN Client. pour Windows

Utilisation de XnView

Remise à niveau d un programme JAVA du domaine public

Manuel Utilisateur. Boticely

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

Comment utiliser RoundCube?

Cyber-base du Pays Martégal. Atelier «Découverte de l ordinateur»

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

claroline classroom online

TBI-DIRECT. Bridgit. Pour le partage de votre bureau. Écrit par : TBI Direct.

Transcription:

Interface graphique Responsable : Françoise Gayral enseignant-chercheur au LIPN (Laboratoire d informatique de Paris-Nord) et à l IUT (département informatique) LIPN : http://www.lipn.univ-paris13.fr/~gayral/ IUT : http://www-info.iutv.univ-paris13.fr/~gayral/ Mail : fg@lipn.univ-paris13.fr F. Gayral 1

Situation du cours d'interface graphique Dans le PPN, partie algorithmique Algorithmique en 1 ère année algorithmique et programmation impérative : langage C algorithmique et programmation orientée objet : langage Java Jusque là : Programmation non graphique et séquentielle F. Gayral 2

En 2 ème année : cours algorithmique en 2 parties Développement d interface graphique (F. Gayral) : 9 semaines principes généraux indépendants des langages d implémentation utilisation du langage Java comme support et utilisation de packages prédéfinis dédiés au graphique Algorithmique avancée : 11 semaines structures de données complexes : piles, files, arbres, graphes... F. Gayral 3

Déroulement du cours Organisation équipe : Françoise Gayral (responsable du cours), Dominique Bouthinon, Bouchaïb Khafif, Jean-Michel Barrachina 1 cours d 1h15 obligatoire - 3h de TD/TP Evaluation 1 contrôle court : coeff 1, sans documents : semaine 5 ou 6 1 contrôle long : coeff 3, une partie sans documents, une partie avec documents : semaine du 12/12/05 Cours Powerpoint avec photocopies distribuées en début de cours, à compléter et à enrichir durant le cours F. Gayral 4

Semaine 1 Semaine 2 Semaine 3 Semaine 4 Semaine 5 Semaine 6 Semaine 7 Semaine 8 Semaine 9 Introduction à la programmation d interfaces graphiques utilisateur Java comme langage de création d interface graphique Classe de base pour les fenêtres (avec swing) : premier canevas Les composants graphiques Les gestionnaires de mise en page Gestion des événements fin événement : les classes Adapter Composants particuliers : JList, dialogue avec l utilisateur,...» Le graphisme: classe Graphics, redéfinition de paintcomponent Java et le web : les applets java L'architecture Modèle-Vue-Contrôleur en général L'architecture MVC : un exemple : gestion d'un ensemble d'éléments L'architecture MVC : Gestion de données "tabulaires" MVC et interaction avec une base de données JDBC F. Gayral 5

Bibliographie Tutoriels de Sun : //java.sun.com/docs/books/tutorial/uiswing/ //java.sun.com/developer/onlinetraining/gui/swing1/shortcourse.html#jfcintro //java.sun.com/developer/onlinetraining/gui/swing2/shortcourse.html#jfcintro Livres java 1.2 : (s&sm), le programmeur Au cœur de Java 2 (2 volumes), campus press Rechercher quelque chose de précis ou pointu: //java.sun.com/developer/jdctechtips/ //java.sun.com/developer/technicalarticles/ F. Gayral 6

Généralités sur les interfaces graphiques F. Gayral 7

Bibliographie Tutoriels de Sun : //java.sun.com/docs/books/tutorial/uiswing/ //java.sun.com/developer/onlinetraining/gui/swing1/shortcourse.html#jfcintro //java.sun.com/developer/onlinetraining/gui/swing2/shortcourse.html#jfcintro Livres java 1.2 : (s&sm), le programmeur Au cœur de Java 2 (2 volumes), campus press Rechercher quelque chose de précis ou pointu: //java.sun.com/developer/jdctechtips/ //java.sun.com/developer/technicalarticles/ F. Gayral 8

Historique avant 1970 : système à cartes perforées années 1970 : introduction du clavier et de l écran années 1980 : introduction de l écran bitmap (point par point) et de la souris, système de fenêtres et de menus ==> IHM tels Smalltalk (76) Apple avec Macintosh (84), Windows F. Gayral 9

Changements par rapport à la programmation non graphique Tout programme s'exécute dans le cadre d'une fenêtre graphique Mode graphique contre mode texte Programmation événementielle F. Gayral 10

Fenêtre : élément fondamental d'une interface graphique Tout programme qui s'exécute le fait dans le cadre d'une ou plusieurs fenêtres Système de fenêtrage permet à plusieurs programmes d utiliser le même écran graphique A un instant donné, une seule fenêtre est active (voir la barre d état). Fenêtre composée de composants graphiques (ou widgets) L'utilisateur communique ses ordres non plus seulement par le clavier, mais en agissant, par l'intermédiaire de la souris, sur les différents composants de le fenêtre F. Gayral 11

Mode graphique contre mode texte Mode texte utilisé jusqu'à présent : informations apparaissent à l'écran uniquement sous forme de caractères la couleur est rare le principal organe de communication est le clavier. ==> Possibilités d affichage très limitées Mode graphique Informations peuvent être affichées d'une multitude de manières différentes : sous forme d'images, de dessins, de courbes ou graphiques, et bien sûr de caractères. utilisation des couleurs (plusieurs millions) ==> Plus de convivialité F. Gayral 12

Affichage graphique Plus de mode texte, comme sous DOS où l affichage était séquentiel : chaque information affichée ou lue s'inscrivait à la suite de la précédente. Tout programme sous IG s'exécute dans une fenêtre graphique ==> Prise en compte des notions de coordonnées, de fonte, d épaisseur de traits, de couleurs... ==> Impossible d'utiliser les fonctions d affichage standard Java : System.out.println C : printf( ) F. Gayral 13

Programmation événementielle Sans IG ==> la programmation est séquentielle public static void main(string[] args) { System.out.println("le programme est séquentiel"); String nom=console.readstring("donner votre nom"); System.out.println("bonjour "+nom); } Le programme termine et rend la main C est le programme qui garde le contrôle des opérations Les instructions du programme principal sont exécutées les unes après les autres L utilisateur est simplement sollicité pour fournir des informations au moment voulu F. Gayral 14

Programmation événementielle Démo Avec une IG ==> la programmation est événementielle C est l utilisateur, par ses actions, qui contrôle les opérations en cliquant où il veut. C est l'utilisateur qui "pilote" le programme Le programme ne fait que réagir aux sollicitations de l utilisateur (pourvu qu'elles aient été prévues) Dès que vous lancez un programme avec interface graphique : une boucle infinie est générée le programme attend les événements (enfoncer une touche du clavier, cliquer avec la souris etc.) "attrape" et traite les événements quand ils se produisent. Le programme est dirigé par les événements F. Gayral 15

Comment ça fonctionne? Système Action de l utilisateur Boîte noire Evénement transmis à l application qui réagit à l événement ou pas Evénement = Objet construit par le système en réponse à une action de l utilisateur et qui contient toutes les informations concernant cette action F. Gayral 16

Comment ça fonctionne (détails)? Action de l utilisateur dans la fenêtre de l application ==> Interruption matérielle ==> Récupération de l interruption par le système ==> Construction de l événement correspondant <== Envoi d'une message à l application concernée avec des informations sur l événement <== L'application réagit à l'événement ou non Exemples : clic souris : connaissances des coordonnées du point de clic frappe d un caractère : connaissance du caractère frappé événement de fenêtre : F. Gayral 17

Schéma général Système Construction Traitement d un d une interruption événement appli1 appli2 azerty Message avec toutes les caractéristiques de l événement transmis à l application appli3 F. Gayral 18

Concevoir une application munie d une interface graphique Bien séparer ce qui relève de l application de ce qui relève de l interface graphique Exemple d une banque : applicatif : gérer les clients, les comptes, les transferts,. GUI (graphical user interface) : comment l applicatif apparaît à l utilisateur Un même applicatif peut avoir différentes GUI, suivant l utilisateur : le guichetier, l administrateur, F. Gayral 19

Concevoir une interface graphique, c est: définir la fenêtre cadre de l application et les objets graphiques qu elle contient : menu, composants... Aspect visuel définir les différentes actions que pourra réaliser l utilisateur dans cette fenêtre (cliquer dans tel ou tel item du menu, dans tel composant : bouton, item d'une liste...) écrire le traitement correspondant à chacune des actions prévues. Aspect événementiel F. Gayral 20

Remarques Toutes les actions de l utilisateur qu on veut traiter doivent avoir un traitement prévu Mais on ne connaît pas le moment où l action est déclenchée Le traitement prévu concerne le plus souvent l applicatif F. Gayral 21

API pour le graphique API = Application Programing Interface Ensemble d objets graphiques Ensemble de fonctions permettant l affichage, l ouverture de fenêtre On peut utiliser : directement l API (programmation de bas niveau) faire appel à des bibliothèques de haut niveau encapsulant ces fonctions, types... Souvent langages objets avec des bibliothèques de classes organisées en hiérarchie F. Gayral 22

Différentes API XLib : bibliothèque de bas niveau en C utilisant le protocole X Window Gtk+ (Gimp tool kit) bibliothèque de haut niveau (widget), surcouche de Xlib Qt (société Trolltech) autre bibliothèque (C++). Qt a été choisi par Kde, environnement graphique de bureau Open Source pour les stations de travail Unix/Linux. Tcl/Tk Tcl (Tool Command Language) langage de script (langage de programmation interprété) Tk (Tool Kit) : la bibliothèque graphique de widget pour l'écriture de GUI, surcouche de Xlib Visual basic (pour windows), C++, bibliothèque java swing F. Gayral 23

Les éléments communs à ces API Les widgets : composants visuels de base généralement implémentés sous forme d'objet posséde des attributs et méthodes par défaut et modifiables définis et organisés selon une hiérarchie de classes fournie par l API et, par l'héritage, il est possible de définir ses propres widgets dérivés d'une de ces classes La gestion événementielle par des déclenchements de fonctions ou méthodes F. Gayral 24

Les environnements de programmation (IDE Integrated Development Environment ) Integrated Development Environment (IDE) : a programming environment integrated into a software application that provides a GUI builder, a text or code editor, a compiler and/or interpreter and a debugger. en français : environnement de développement intégré Exemples : Visual Studio (microsoft), Delphi, JBuilder (borland), KDevelop ( license GPL) pour KDE, Eclipse,... Supportent souvent différents langages de programmation F. Gayral 25

Environnements de développement pour Java Nombreux IDE commerciaux Des environnements freeware ou shareware -- Kawa http://www.macromedia.com/software/kawa/ -- Emacs + JDE http://sunsite.auc.dk/jde F. Gayral 26

Dans ce cours Pas d'ide environnement unix simple : éditeur + JRE (Java Runtime Environment) contient uniquement l'environnement d'exécution de programmes Java : javac, java, javadoc, jar API : packages java (objets swing) F. Gayral 27

Interface graphique avec Java - Historique - 2 types de programmes graphiques java - La classe JFrame F. Gayral 28

Historique Java 1.0 en 1996, 1.1,... classes du package awt à partir de Java 1.2 (1998) : classes Java Foundation Classes (JFC) javax.swing, javax.swing.border, javax.swing.event,... Depuis sa version 1.2, Java a été renommé Java 2. Le JDK a été renommé J2SDK (Java 2 Software Development Kit) 1.4 : 2002 1.5 : 2004 désignée sous le nom J2SE (Java 2 Standard Edition) Pour les différences J2SDK1.4 et J2SDK1.5, consulter http://perso.wanadoo.fr/jm.doudoux/java/tutorial/chap009.htm F. Gayral 29

2 types de programmes graphiques java Les Applications indépendantes : Programmes autonomes (stand-alone) Les Applets Programmes exécutés dans l environnement d un navigateur Web et chargés au travers de pages HTML Différences : les contextes d'invocation et d exécution Les classes concernées F. Gayral 30

2 types de programmes graphiques java Indépendante du web : sur la machine locale classe javax.swing.jframe Dans une application pour le web : applet placée sur un serveur et téléchargée sur le poste client classe javax.swing.japplet F. Gayral 31

JFrame et ses superclasses omponent : objet qui peut être dessiné (bouton, scrollbar.) Object Component java.lang Container est un composant qui ut contenir d autres composants fenêtre des plus simples : pas de barre de titre, ni de bords Container Window java.awt e fenêtre avec barre de titre et bords ne JFrame est une Frame avec certaines extensions Frame JFrame javax.swing F. Gayral 32

Premier exemple : ouvrir une simple fenêtre Démo import javax.swing.*; public class FenSimple extends JFrame { public FenSimple (String titre, int x, int y, int w, int h) { super(titre); this.setdefaultcloseoperation(exit_on_close); this.setbounds(x,y,w,h); this.setvisible(true); } public static void main(string[] args) { new FenSimple ( "Ma première fenêtre ", 300,200,500,400); } F. Gayral 33

Remarques sur le programme Ce programme se contente d'afficher une fenêtre a l'écran Une fois qu'arrive la dernière instruction de la fonction main() : le programme ne s'arrête pas : il attend les événements la fenêtre est toujours à l'écran si l'utilisateur agit, rien ne se passe car rien n'a été prévu le programme tourne tant que la fenêtre n'est pas fermée Fenêtre pas du tout paramétrée : position et dimensions "en dur" F. Gayral 34

Positionnement et taille this.setbounds(300,200,500,400); //Position et taille (0,0) X (300) Y (200) H (400) W (500) F. Gayral 35

Détails sur les méthodes employées setvisible : Dessine la fenêtre au premier plan, par dessus toute fenêtre déjà visible à l écran Les méthodes setbounds() et setvisible() sont héritées de Component, et sont donc disponibles pour tout Component setdefaultcloseoperation(exit_on_close) permet de fermer la fenêtre quand l utilisateur cliquera sur la croix Autres méthodes : setsize(int w, int h) setlocation (int x, int y) show() équivalente à setvisible(true) F. Gayral 36

Comment pallier l'indépendance de Java par rapport aux plate-formes? Par exemple : si on veut connaître des informations sur la machine sur laquelle s exécute le programme? La classe Toolkit fait le lien entre les classes java indépendantes de toute plateforme et la plate-forme sur laquelle tourne le programme On obtient une instance de Toolkit par la méthode de classe de Toolkit : public static Toolkit getdefaulttoolkit() Exemple de code : Toolkit atk= Toolkit.getDefaultToolkit(); Dimension dim = atk.getscreensize(); F. Gayral 37

et si on veut connaître des informations sur la machine sur laquelle s exécute le programme? La classe System permet d accéder à des informations liées au système ou à l utilisateur Variables de classe connues in, out, err (dans System.out) Méthode importante public static String getproperty(string key) : retourne la valeur de la propriété repérée par la clé key Exemple de code : System.getProperty("user.dir"); F. Gayral 38