IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FXWindowFramer, ou comment repeindre ses châssis avec JavaFX...


En deux mots...

Chacun peut souhaiter, à l’occasion, explorer le potentiel de décoration des fenêtres dans lesquelles se présentent nos applications... Les « Préférences » des OS modernes proposent souvent quelques options, mais on peut aussi vouloir en faire plus, ou moins, ou autrement, par exemple pour imposer un style spécifique à nos fenêtres. FXWindowFramer est une libraire JavaFX très simple, qui peut, d’une part, être directement utilisée pour modifier la présentation de la fenêtre principale d’une application, ou d’autre part, servir de point de départ pour des essais de modifications plus avancées...

FXWindowFramer, visant la simplicité, il ne retouche que le cadre de la fenêtre et le bandeau de titre, et supporte uniquement les applications locales n’ayant pas besoin de fenêtres à géométrie variable. L’objectif : changer le cadre sans rien perdre du tableau !

Pour le cadre, FXWindowFramer modifie :
• la largeur du bord;
• l’arrondi des coins ;
• les couleurs.

Pour la barre de titre et les boutons, les modifications portent sur :
• la position ;
• les couleurs ;
• la police ;
• le choix des boutons d’action.

Une partie de ces modifications peuvent être faites en changeant seulement des règles de style dans le fichier des définitions CSS de l'outil, sans devoir modifier le code java...

Bien sûr, outre les requêtes concernant la décoration, FXWindowFramer répond aussi à des besoins plus fonctionnels : par exemple, on voudrait pouvoir encadrer une application JavaFX pré-existante telle quelle, sans trop de contraintes techniques supplémentaires et sans en modifier la scénographie ; il serait aussi bienvenu que le bouton ‘Bye...’ ne ferme l’application... que si l’application est d’accord, ou qu'on puisse aisément montrer ou cacher les boutons de minimisation et/ou de sortie...

On trouvera une présentation détaillée de FXWindowFramer dans le document "Vade Mecum.pdf", ainsi que quelques captures d'écran pour pré-visualiser les résultats du projet... Pour faciliter l'accès à ceux qui n'ont pas encore abordé cette technologie, une brève introduction est donnée, au début, couvrant l'architecture d'une scénographie JavaFX et les objets graphiques utilisés. Ensuite, on détaille les aspects principaux de l'outil, commentant et expliquant les lignes de code importantes. En considérant les trois fichiers sources, il n'y a moins de 350 lignes à parcourir, bien aérées...

Ce même document donne également quelques indications sur le petit prototype de test, qui permet de visualiser le rendu de FXWindowFramer dans le cas du ProgressMonitor (sans ses fonctionnalités). On voit sur cet exemple que, par rapport à l'initialisation standard "native" d’une Application JavaFX apparaissant dans une fenêtre système, les seules différences sont, aux habitudes de programmation près, réduites à trois lignes (et même à deux, si on ne compte pas la gestion des requêtes de sortie).


Ce Projet est proposé ici comme suit :

Le code est proposé en sept fichiers, groupés en deux sous-projets, le second étant le prototype de test :

1. src-FXWindowFramer.zip
qui contient le répertoire package fxWindowFramerPKG, et, dans ce dernier, les sources
FrameSupport.java,
NodeFramer.java,
FXWindowFramerSTYLE.css (pour la décoration de l’encadreur lui-même);

2. src-TestFramer.zip
qui contient le répertoire package testFramerPKG, et dans ce dernier, les sources du proto de test,
TestFramerCTRL.java,
TestFramerGUI.fxml,
TestFramerMAIN.java,
TestMonitorSTYLE.css (pour la décoration du proto uniquement);

A quoi s'ajoutent :

3. dist.zip
qui contient tout ce qu'il faut pour exécuter le propotype de test. Il suffit d'extraire le tout dans un répertoire et de lancer TestFramer.jar (un double-click sous Windows, si une jvm 8 est installée).
Dans le sous-répertoire "lib" de dist se trouve bien entendu le binaire FXWindowFramer.jar. Pour exploiter FXWindowFramer tel quel dans une application réelle, il suffit d’inclure FXWindowFramer.jar dans le class-path de l'appli (ou dans ses librairies);

4. Vade Mecum.pdf
la documentation pas à pas...
Nos ressources disponibles
Voir, par exemple,
- le tuto de Mik Arber, Comprendre les bases avec JavaFX, ou
- celui de Romain Niveau, Apprendre les concepts de base de JavaFX au travers d'un exemple.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.