Projet MVC-CD Initiation à JavaFX 2.0



Documents pareils
Interfaces graphiques avec l API Swing

Java 7 Les fondamentaux du langage Java

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

Table des matières Introduction Démarrage Les composants graphiques... 26

Java pour le Web. Cours Java - F. Michel

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

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)

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

Générer du code à partir d une description de haut niveau

Applications distribuées: le retour du client "riche"

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

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL

TP1 : Initiation à Java et Eclipse

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

Celui qui vous parle. Yann Vigara

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

TP1 : Initiation à Java et Eclipse

Réalisation d une application de soumission de cours en ligne de l Université Virtuelle de Tunis

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Formation : WEbMaster

Devenez un véritable développeur web en 3 mois!

Introduction aux concepts d ez Publish

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

W4 - Workflow La base des applications agiles

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

BIRT (Business Intelligence and Reporting Tools)

1 INTRODUCTION. PowerBuilder - Introduction. Pascal Buguet Imprimé le 19 août 2004 Page 1

IBM System i. DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!!

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

LES OUTILS DES DESIGNERS WEB : L ÈRE POST-ADOBE Atelier Paris Web Benoît Vrins -

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

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Présentation du Framework BootstrapTwitter

Android 4 Les fondamentaux du développement d'applications Java

Manuel du composant CKForms Version 1.3.2

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

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

as Architecture des Systèmes d Information

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

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

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Vulgarisation Java EE Java EE, c est quoi?

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Initiation à JAVA et à la programmation objet.

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

TP2 : Client d une BDD SqlServer

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Petite définition : Présentation :

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

Prise en main rapide

Cours 2 : programmation des interfaces graphiques

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Nouveautés de Drupal 8. Léon

Web Tier : déploiement de servlets

( Mauritius ) ( France )

Comment booster vos applications SAP Hana avec SQLSCRIPT

Les différents parcours en S4

Projet de développement

TP1. Outils Java Eléments de correction

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

CQP Développeur Nouvelles Technologies (DNT)

Développement Logiciel

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

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

Logiciel de gestion de caisse et d ardoises

Webmaster / Webdesigner / Wordpress

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

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Architecture générale des interfaces graphiques. IHM: Fondements des Interfaces Graphiques. Applications. Outils de construction d interfaces

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Cours. Cours 8 : Révisions. Importance. Interface homme-machine

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

Optimiser pour les appareils mobiles

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Formation en Logiciels Libres. Fiche d inscription

Architecture Orientée Service, JSON et API REST

SQL Server Installation Center et SQL Server Management Studio

Les fondamentaux du développement d applications Java

Chapitre I Notions de base et outils de travail

INTRODUCTION GENERALE...1 LA CONNEXION ODBC :...1. CONNEXION AU TRAVERS D EXCEL(tm)...6. LOGICIEL QUANTUM GIS (Qgis)... 10

Catalogue Formations Jalios

Compte Rendu d intégration d application

Généralités sur le Langage Java et éléments syntaxiques.

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

4. SERVICES WEB REST 46

Bases Java - Eclipse / Netbeans

Etude et développement d un moteur de recherche

Joomla! Création et administration d'un site web - Version numérique

Introduction au développement SharePoint. Version 1.0

Construire des plug-ins pour SAS Management Console SAS 9.1

Guide de réalisation d une campagne marketing

Point sur les solutions de développement d apps pour les périphériques mobiles

Programmation Orientée Objet

Idéalement, une mission alliant XML ou base de données SQL avec des technologies internet et/ou logiciels libres.

Java3D. Généralités sur la synthèse d'images temps réel. Généralités sur Java3D. d 'après P.Reignier, UJF

Diplôme Universitaire Technologique Spécialité Informatique. Période du stage: 05 Avril Juin 2004

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Transcription:

Projet MVC-CD Initiation à JavaFX 2.0 Créé par M. Jaouadi, le 25 mars 2015 Modifié par M. Jaouadi, le 30 mars 2015 Page 1 sur 11

Table des matières 1 Préambule... 3 2 JavaFX... 3 3 Architecture de JavaFX... 3 4 Structure d une application en JavaFX... 4 4.1 Graphe de scène... 4 4.2 Exemple :... 6 5 Les composants standards (Controls) :... 7 6 Les conteneurs (Layout-Pane) :... 8 7 Migration Swing JavaFX :... 9 8 La séparation des préoccupations:... 10 9 Référence externe au projet... 11 Page 2 sur 11

1 Préambule Ce document expose d abord une initiation théorique à JavaFX une technologie considérée comme étant l avenir pour le développement d'interfaces graphiques en Java. Notre choix s est fixé sur cette technologie afin d améliorer la réactivité de nos IHM, et favoriser la séparation MVC. De plus, la communauté java SE s oriente vers considérer JavaFX le successeur de Swing pour sa librairie d interface utilisateur (Client UI library). Ceci a été clairement déclaré dans la documentation d Oracle [Oracle-01]. Dans cette perspective et afin de maintenir le cycle de vie du plugin et assurer la prospérité de tout le projet, une migration de l environnement Swing vers JavaFX est pertinente. 2 JavaFX Le JavaFX est un langage de programmation orienté interface graphique. Cette technologie est en faveur des applications internet riches qui se comportent sur des multiples plateformes. JavaFX évolue vers le multimédia à travers le traitement des images, la création de media player, et l intégration audio et vidéo. Ces applications ont l avantage d être exécuté sur le web, sur le bureau, (Desktop) ainsi que sur mobile, et même sur télévision. La nouvelle version JavaFX 2.0 donne la possibilité de développer en deux modes : - Mode procédural : à travers les classes java. - Mode déclaratif : en utilisant la syntaxe XML. 3 Architecture de JavaFX L'architecture technique de JavaFX est composée de plusieurs couches qui reposent sur la machine virtuelle Java (JVM). Seulement la couche API est publique, les autres peuvent subir des changements au fil des versions. Ceci permet d éviter tout problème de compatibilité. [IHM-01] Figure 1 Diagramme d architecture de JavaFX [Oracle-02] Quantum Toolkit : permet de lier le «Prism» et la boîte à outils de fenêtrage «Glass» ensemble et les rendre accessibles à la couche JavaFX. Elle gère également les règles relatives aux Threading et à la manipulation des événements. Page 3 sur 11

Prism : pipeline graphique permet d effectuer la rastérisation et le rendu (rendering) des scènes JavaFX. Glass Windowing Toolkit : est responsable de fournir des services d'exploitation natifs, tels que la gestion des fenêtres, des minuteries et des surfaces. 4 Structure d une application en JavaFX La structure des composants dans une application JavaFX est basée sur la métaphore du théâtre. Le conteneur de niveau le plus élevé est le stage, à l intérieur du stage se trouve la scène, cette scène contient le graphe de scène, c est-à-dire la structure hiérarchique des éléments graphiques dans l interface. Toutes classes créées doivent hériter de la classe mère Application : Public class Main extends Application Stage est la fenêtre principale indispensable pour l affichage. C est l équivalent de java.awt.frame en Java. Stage primarystage.show() ; //afficher la fenêtre principale. Scene Scene contient tous les éléments de notre interface graphique. Elle compose une page dans l application. Container + layout Container + layout... Scene scene=new Scene(root,500,400); Une Scène est associée par la suite à la fenêtre principale Stage : Compenents Controls Compenents Controls Compenents Controls primarystage.setscene(scene); Nodes : ce sont les éléments visuels de la scène : les containers et les composants de JavaFX. 4.1 Graphe de scène Le graphe de scène contient tous les éléments qui composent une interface utilisateur, des groupes, des dispositions, des contrôles et des formes. Ces objets sont des nœuds qui héritent de la classe mère Node. Cette classe comporte de nombreuses sous-classes. Les feuilles de l'arbre sont généralement constitués de composants visibles (boutons, champs texte ) et les nœuds intermédiaires (y compris la racine) sont généralement des éléments de structuration (souvent invisibles), typiquement des conteneurs ou panneaux de différents types (HBox, VBox, BorderPane, ). La famille des nœuds dans une scène est présentée dans la figure ci-dessous : Page 4 sur 11

Page 5 sur 11 javafx.scene.node Prarent Control ChoiceBox ComboBoxBare ColorPicker Combobox Labeled ButtonBase Button CheckBox Hyperlink MenuButton ToggleButton Cell Label TitledPane ListView MenuBar Slider TabPane TextInputControl ToolBar TreeView Group Region Axis Chart Pane AnchorPane BorderPane FlowPane GridPane HBox StackPane TilePane VBox WebView Shape Arc Cercle Line Polygon Rectangle Text Canvas ImageView

4.2 Exemple : public class Main extends Application { @Override public void start(stage stage) { Group root = new Group(); Scene scene = new Scene(root, 500, 500, Color.BLACK); Rectangle r = new Rectangle(25,25,250,250); r.setfill(color.blue); root.getchildren().add(r); stage.settitle("javafx Scene Graph Demo"); stage.setscene(scene); stage.show(); } public static void main(string[] args) { launch(args); } } Page 6 sur 11

5 Les composants standards (Controls) : Figure 2 JavaFX UI Controls Page 7 sur 11

6 Les conteneurs (Layout-Pane) : BorderPane Top Left Center Right Buttom HBox Current VBox StackPane Date 1 2 3 GridPane FlowPane TitlePane AnchorPane Page 8 sur 11

7 Migration Swing JavaFX : Swing Components JButton JLabel JTextField JDialog Border Layout JTable JTree JavaFX Controls Button Label TextField BorderPane Accordion TableView TreeView TreeTableView Structure de Swing : Jframe + ContentPane Container Compenent + LayoutManager Structure de JavaFX Stage Scene Container +Layout Control FXML Page 9 sur 11

8 La séparation des préoccupations: Developpeur Designer UX Designer graphique Code java Main.java User interface View.fxml Style application.css Contrôleur Controller.java Prise en charge de CSS JavaFX offre la possibilité d appliquer les feuilles de style dans la scène graphique et ses composants comme les styles CSS destinées aux composants HTML dans un navigateur. Pour apporter un style à une scene : Pour appliquer un Look ande Feel : Scene.getStylesheets(String url) setuseragentstylesheet(string url) Le look and feel standard de JavaFX 2.0 est Caspian par contre celui de javafx 8.0 est Modena Caspian setuseragentstylesheet(stylesheet_caspian) Modena setuseragentstylesheet(stylesheet_ Modena) Page 10 sur 11

Génération du FXML C est le développement en utilisant l approche déclarative. Un fichier FXML est un fichier au format XML dont la syntaxe est conçue pour décrire l'interface (la vue) avec ses composants, ses conteneurs, sa disposition. Tableau 1 Mapping Java-XML Java Button b = new Button() ; b.settext("hello World"); new BorderPane().setCenter(new Button("Hello World")); FXML <Button> <Button text= " Hello World"> <BorderPane><center><Button text= "Hello World"/></center></BorderPane> 9 Référence externe au projet [Oracle-01] [Oracle-02] [IHM-01] JavaFX Foire aux questions http://www.oracle.com/technetwork/java/javafx/overview/faq-1446554.html Architecture de JavaFX http://docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-architecture.htm Cours IHM-1 : JAVAFX http://jacques.bapst.home.hefr.ch/ihm1/cours/ihm1_all_4up.pdf Page 11 sur 11