JavaFX est une famille de produits pour la création de RIA "rich internet application" ou application riche pour Internet.
Il s'agit en effet de simplifier grandement la création de contenu graphique. Par exemple, le contenu graphique nécessite actuellement beaucoup de source Java construit à partir des composants Swing, Selon Sun le même contenu peut être mis en ½uvre en quelques lignes de JavaFX Script.
Des effets tels que l'animation, les changements de tailles, la traduction et la transparence, sont tous disponibles avec un langage plus simple, déclarative.
Pour Sun et le monde Java, les RIA passent par JavaFX
JavaFX comprend :
1-JavaFX Runtime permettant aux applications JavaFX de s'exécuter sur toutes les plateformes disposant de Java SE ou Java ME. Il offre la possibilité d'avoir un client riche sur de multiples plateformes, écrans et terminaux comme par exemple :
-JavaFX Desktop : navigateurs et applications
-JavaFX Mobile
-JavaFX TV
-Autre ...
2-JavaFX Tools Suite : un ensemble d'utilitaires utilisables par les concepteurs, designers et développeurs de Web pour la création des applications riches et interactives "rich interactive applications". Plusieurs outils pour les développeurs et concepteurs, notamment des plug-ins pour Netbeans et Eclipse.
Les Produits :
Pour l'instant
1-JavaFX Script, nouveau langage de script à utiliser par exemple pour la création de composants Swing plus facilement
2-JavaFX Mobile est l'environnement pour les plateformes "mobile" qui supportent JavaFX
1.Basé sur Java (Java SE et ME)
2.Utilisable sur tous les écrans : navigateurs, mobile, TV, etc.
3.Open Source
4.Déploiement sur navigateur et ordinateur de bureau "Desktop" sans modification
5.Collaboration designers et développeurs
6.Possibilité d'intégrer des codes en Java et JavaFX
7.Moins de code pour générer une interface et des composants graphiques
8.JavaFX est une sorte de plateforme universelle qui repose sur Java SE et Java ME
Source de l'image "Sun Microsystems"
-Plug-in pour Netbeans
-Plug-in pour Eclipse
-OpenJFX compiler
le compilateur traduit les scripts JavaFX en bytecode (classes pour la JVM)
-JavaFX SDK : logiciel et utilitaire nécessaire à la création des applications pour JavaFX
La version JavaFX SDK "Preview Release", est attendue en juillet 2008
Le JavaFx script plug-in pour Netbeans permet de créer, tester, déboguer et déployer une application écrite en langage JavaFX script
Le plug-in de Netbeans 6.1 est basé sur OpenJFX
Source de l�image : netbeans.org
Télécharger le plug-in sur le site de netbeans.org
Décompresser le fichier (zip ou gz)
Tools > Plugins
Onglet Downloaded -> clic sur Add Plugins
Naviguer vers le dossier créé lors de décompression du fichier .zip ou .gz sélectionner tous les fichiers .nbm puis -> clic sur "OK"
Une liste détaillant les composants de plug-in est affichée -> un clic sur "Install"
Suivre les instructions de l'installateur
Redémarrer Netbeans
Lancer netbeans -> double clic sur son icône (Linux et Windows)
File (dans la barre des menus) -> New Project
Par exemple le nom et la location du projet. Garder les options "Set as Main Project" et "Create Main File" cochées.
Netbeans se charge de créer le squelette nécessaire pour ce projet JavaFX et ouvre l'éditeur pour entrer des instructions en JavaFX script
Bonjour le monde :
Entrons le code suivant pour afficher un container frame avec Bonjour le monde dans une étiquette "Label" :
/**
* @author Kaesar ALNIJRES
*/
import javafx.ui.*;
Frame {
title: "Tester JavaFX"
visible: true
content:
Label
{
text: "Bonjour le monde !!!"
}
}
Un clic sur l'icône "Run" lancer la compilation et l'exécution du projet
-CTRL+ESPACE affiche des proposions pour compléter le code à l'emplacement du curseur
-Le bouton "Preview" permet de voir le résultant immédiatement quand on entre le code et sans compilation
-La palette permet un glisser déplacer "Drag and drop" pour ajouter des composants, couleurs, formes, etc. Dans le source.
Entrons le code suivant :
Ce code affiche un "Bonjour le monde !!! " dans un Canavas quand on clique sur un bouton, le bouton est dans un frame
Note : La structure des composants UI est le même que pour les applications Swing
/**
* @author Kaesar ALNIJRES
*/
import javafx.ext.swing.*;
import javafx.scene.Font;
import javafx.scene.text.Text;
import java.lang.*;
import javax.swing.*;
Frame {
var phrase:String
var frame:Frame
title: "Tester JavaFX"
height: 300
width: 400
visible: true
content:
BorderPanel {
center:
Canvas {
content:
Text {
x: 50
y: 125
content: bind phrase
}
}
bottom:
FlowPanel {
content:
Button {
text: "Cliquer ici"
action:
function():Void {
// The button was clicked
phrase = "Bonjour le monde !!!";
System.out.println("Bonjour le monde !!!")
}
}
}
}
}
Un clic sur le bouton "Run" va compiler le projet "Main project" et exécuter "Main class"
Installation sur Eclipse 3.3.2 :
=====================
Lancer Eclipse
Help > Software Updates > Find and Install
Search for New Features to Install (dans l'onglet Install/Update) -> Next
Un clic sur le bouton "New Remote Site".
Dans la boîte de dialogue qui s'ouvre : entrer JavaFX dans "Name" et l'Url
Un Clic sur OK.
Puis un clic sur Finish
Note :
L'Url change vite. Visitez les sites JavaFX pour connaître les derniers plug-ins et leurs Urls
Au moment de l'écriture du tutoriel j'ai téléchargé le plug-in sur le site :
http://download.java.net/general/openjfx/plugins/eclipse/site.xml
Sélectionner JavaFX -> clic sur Next
Un clic sur Next
Dans l'onglet "Install"
Un Clic Finish
Note : Il est possible de choisir l'endroit de l'installation
Dans l'onglet "Verification"
Un clic sur Install All
Pour finir l'installation redémarrer Eclipse
Un clic sur Help-> Software Updates
Un clic sur l'onglet Available Software -> un clic sur le bouton Add Site
Note :
L'adresse est la même pour les Plug-Ins d'Eclipse
Dans l�onglet Software Updates and Add-ons
Sélectionner JavaFX
Un clic sur Next
Un clic sur Finish
Redémarrer Eclipse
Pour terminer l'installation
Nouveau projet :
File -> new -> Java project
Note : Attention !!!
Minimum Eclipse 3.2.2 et JDK 5.0 (de préférence JDK 6 ou sup)
Entrer le nom du projet et la version du JRE
Puis "Finish"
Note : Attention !!! JDK 5 ou sup
Sélectionner le projet nouvellement créé -> File -> New -> Other -> JavaFX -> JavaFX File -> Next
Note :
Un fichier JavaFX a .fx comme extension
Entrer le nom du fichier par exemple "bonjour.fx" -> un clic sur "Finish"
Note : Sélectionner le dossier du projet java et le dossier "src"
Note : les libraires de JavaFX sont ajoutées automatiquement dans le projet avec le nouveau fichier .fx
Entrons le premier exemple introduit là-haut :
/**
* @author Kaesar ALNIJRES
*/
import javafx.ui.*;
Frame {
title: "Tester JavaFX"
visible: true
content:
Label
{
text: "Bonjour le monde !!!"
}
}
-On commence par créer une nouvelle configuration de lancement Eclipse
-Un clic droit sur le fichier "bonjour.fx" -> Run as -> Run configuration -> Double clic sur JavaFX Application -> New Application est créée (ou bien clic droit sur JavaFX Application -> new)->donner un nom à cette New Application comme par exemple BonjourJavaFX
Dans l'onglet Arguments "bonjour" comme le nom du fichier "bonjour.fx" -> un clic sur Apply -> un clic sur Run
Dans Eclipse l'affichage suivant
CTRL+SPACE permet d'afficher des proposions pour compléter le code sous le curseur
Exemple les données de couleur de label sont sélectionnées et entrées avec l'assistant
Label
{
background:Color {
blue: 255
}
text: "Bonjour le monde !!!"
}
Pour afficher un bouton à l'intérieur d'une Jframe avec
Swing
=====
import javax.swing.*;
/**
*
* @author kas
*/
public class Main extends JFrame{
public Main()
{
JButton button = new JButton("cliquer ici");
getContentPane().add(button);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
SwingUtilities.invokeLater(new Runnable() {
public void run()
{
Main test = new Main();
}
});
}
}
Frame {
title: "Tester JavaFX"
visible: true
content:
Panel {
Button {
text: "Cliquer ici"
}
}
}
Compiler un fichier source :
Les instructions données ici sont exécutées sur un système Linux. L'adaptation sur une version de Windows se passe de commentaire :-)
Télécharger le compilateur pour JavaFX "OpenJFX" sur le site de Sun
Décompresser le fichier .zip dans un dossier.
J'ai décompressé le fichier .zip dans le dossier "/home/kas/OPENJFX-SUN-COMPILER/")
Les dossiers suivants sont créés :
bin
demos
doc
lib
Par "exemple test_javafx" avec "mkdir test_javafx"
Par exemple "bonjour.fx" dans le dossier du test "test_javafx"
import javafx.ui.*;
Frame {
title: "Tester JavaFX"
visible: true
content:
Label
{
text: "Bonjour le monde !!!"
}
}
Taper les commandes suivantes : (utilisateur ordinaire)
$ export PATH=$PATH:/home/kas/OPENJFX-SUN-COMPILER/bin
$ javafxc -d test_javafx test_javafx/bonjour.fx
$ javafx -cp test_javafx bonjour
Et voilà ça marche sans problèmes
Note :
-Il faut vérifier que javafxc et javafx ont l'attribut exécutable (dans l'exemple, ils sont dans le dossier
"/home/kas/OPENJFX-SUN-COMPILER/bin " )
Sinon chmod u+x javafx javafxc
-Dans la commande "javafxc -d test_javafx test_javafx/bonjour.fx " penser à mettre le dossier de l'exercice
-Si on oublie -cp et le dossier de l'exercice (les classes générées sont maintenant dedans) dans la commande :
" javafx -cp test_javafx bonjour" on est de suite rappelé à l'ordre avec le fameux message "java.lang.ClassNotFoundException"
http://openjfx.java.sun.com
http://wiki.netbeans.org/JavaFXPlugin
http://java.sun.com/javafx
http://javafx.netbeans.org/
https://openjfx.dev.java.net/javafx-eclipse-plugin-install.html
http://developers.sun.com