Tutoriel JavaFX 8 - Partie 1 Le Scene Builder
Tutoriel JavaFX 8 - Partie 1 Le Scene Builder
Tutoriel JavaFX 8 - Partie 1 Le Scene Builder
ib
cr
bs
Su
to
te
da
Up
code.makery (/)
Learning how to code.
Home (/)
Library (/library/)
Paths (/paths/)
Blog (/blog/)
About (/about/)
Edit on GitHub
(https://github.com/marcojakob/code.makery.ch/edit/master/collections/library/javafx8-tutorial-fr-part1.md)
Langues
Prrequis
le dernier Java JDK 8
(http://www.oracle.com/technetwork/java/javase/downloads/index.html)
(qui inclu JavaFX 8).
Eclipse 4.4 ou suprieur avec le plugin e(fx)clipse. Le plus simple est de
tlcharger la distribution prconfigure depuis le site e(fx)clipse
(http://efxclipse.bestsolution.at/install.html#all-in-one). Une autre faon de
faire consiste utiliser le site de mise jour
(http://www.eclipse.org/efxclipse/install.html) pour votre installation
d'Eclipse.
Scene Builder 8.0 (http://gluonhq.com/products/scene-builder/) (fourni par
Gluon car Oracle le distribue seulement sous la forme de code source
(http://www.oracle.com/technetwork/java/javase/downloads/sb2download2177776.html)).
Configuration d'Eclipse
Nous devons paramtrer Eclipse pour qu'il utilise le JDK 8 et qu'il sache o
trouver le le Scene Builder :
1. Ouvrez les prfrences et slectionnez la partie Java | Installed JREs.
2. Cliquez sur le bouton Add... pour ajoutez le JDK 8 puis sur Standard VM et
slectionnez le dossier contenant le JDK 8.
3. Supprimez les autres JREs et JDKs afin que le JDK 8 devienne le JDK par
dfaut (default) !
Liens utiles
Peut-tre voudrez-vous mettre les liens suivants dans vos favoris :
Java 8 API (http://docs.oracle.com/javase/8/docs/api/) - JavaDoc pour les
classes Java standard
JavaFX 8 API (http://docs.oracle.com/javase/8/javafx/api/) - JavaDoc pour
les classes JavaFX
ControlsFX API (http://controlsfx.bitbucket.org/) - JavaDoc pour les projets
projets ControlsFX (http://fxexperience.com/controlsfx/) et les contrles
supplmentaires JavaFX
Oracle's JavaFX Tutorials (http://docs.oracle.com/javase/8/javafx/getstarted-tutorial/get_start_apps.htm) - Tutoriels officiels d'Oracle
Maintenant, nous pouvons commencer !
Crer le packages
Ds maintenant nous allons suivre les bonnes pratiques de programmation. Un
principe trs important est le Model-View-Controller (MVC)
(http://en.wikipedia.org/wiki/Model_View_Controller). En accord avec ceci, nous
divisons notre code en trois units. Nous allons crer un package pour chaques
parties : (clic droit sur le dossier src, New... | Package):
ch.makery.address - contient la plupart des classes contrleur ( = la logique
mtier)
ch.makery.address.model - contient les classe modle
ch.makery.address.view - contient l'interface graphique
Faites un clic droit sur PersonOverview.fxml et puis cliquez sur Open with Scene
Builder. Maintenant vous devriez voir s'afficher le programme Scene Builder avec
un AnchorPane (visible dans la partie hirarchie sur la gauche).
(Si Scene Builder ne dmarre pas, cliquez sur Window | Preferences | JavaFX et
dfinissez le chemin correct relatif l'installation de votre Scene Builder).
1. Dans la partie Hierarchy, slectionnez l'Anchor Pane et ajustez la taille sous
Layout (dans la partie de droite):
au contrle parent) !
4. Allez dans le menu Preview | Show Preview in Window pour voir si la fentre
s'affiche comme vous le voulez. Essayez de la rediensionner ! Le TableView
devrait tre redimensionn en mme temps que la fentre parce qu'il est
ancr aux bordures.
10. Ajoutez une ButtonBar en bas ! Ajoutez trois boutons la barre ! Enfin,
dfinissez les ancres pour qu'ils restent leur place soit en bas et droite.
11. Maintenant, vous devriez voir quelque chose ressemblant l'image cidessous. Utilisez le menu Preview pour tester le comportement aprs
redimensionnement.
1. Faites un clic droit dans votre projet puis cliquez sur New | Other... et enfin
sur JavaFX Main Class.
importjavafx.application.Application;
importjavafx.fxml.FXMLLoader;
importjavafx.scene.Scene;
importjavafx.scene.layout.AnchorPane;
importjavafx.scene.layout.BorderPane;
importjavafx.stage.Stage;
publicclassMainAppextendsApplication{
privateStageprimaryStage;
privateBorderPanerootLayout;
@Override
publicvoidstart(StageprimaryStage){
this.primaryStage=primaryStage;
this.primaryStage.setTitle("AddressApp");
initRootLayout();
showPersonOverview();
}
/**
*Initializestherootlayout.
*/
publicvoidinitRootLayout(){
try{
//Loadrootlayoutfromfxmlfile.
FXMLLoaderloader=newFXMLLoader();
loader.setLocation(MainApp.class.getResource("view/RootLayout.fxml")
);
rootLayout=(BorderPane)loader.load();
//Showthescenecontainingtherootlayout.
Scenescene=newScene(rootLayout);
primaryStage.setScene(scene);
primaryStage.show();
}catch(IOExceptione){
e.printStackTrace();
}
}
/**
*Showsthepersonoverviewinsidetherootlayout.
*/
publicvoidshowPersonOverview(){
try{
//Loadpersonoverview.
FXMLLoaderloader=newFXMLLoader();
loader.setLocation(MainApp.class.getResource("view/PersonOverview.fx
ml"));
AnchorPanepersonOverview=(AnchorPane)loader.load();
//Setpersonoverviewintothecenterofrootlayout.
rootLayout.setCenter(personOverview);
}catch(IOExceptione){
e.printStackTrace();
}
}
/**
*Returnsthemainstage.
*@return
*/
publicStagegetPrimaryStage(){
returnprimaryStage;
}
publicstaticvoidmain(String[]args){
launch(args);
}
}
Problmes frquents
Lorsque JavaFX ne peut pas trouver le fichier fxml que vous avez spcifi, vous
devriez voir le message d'erreur suivant :
java.lang.IllegalStateException:Locationisnotset.
Pour rsoudre ce problme, vrifiez une seconde fois le chemin du fichier fxml !
Si cela ne fonctionne toujours pas, tlchargez la source de cette partie du
tutoriel et essayez avec le fichier fxml inclu !
Intro (/library/javafx-8-tutorial/fr/)
1 (/library/javafx-8-tutorial/fr/part1/)
2 (/library/javafx-8-tutorial/fr/part2/)
3 (/library/javafx-8-tutorial/fr/part3/)
4 (/library/javafx-8-tutorial/fr/part4/)
5 (/library/javafx-8-tutorial/fr/part5/)
6 (/library/javafx-8-tutorial/fr/part6/)
7 (/library/javafx-8-tutorial/fr/part7/)
Comments
0Comments
Recommend
code.makery
Share
SortbyOldest
Startthediscussion
Bethefirsttocomment.
Subscribe
Login
AddDisqustoyoursite
Privacy
Enter email
Get updates
Created by Marco Jakob (/about) Licensed under Creative Commons Attribution 4.0
(http://creativecommons.org/licenses/by/4.0/)