Kits de Développement Java

Ajouter un nouvel élément

Les performances du mois

J2EE 1.4 SDK
2
NeoMAD
1
Java SE 7.0 - Dolphin
3

ang NeoMAD

Éditeur : Neomades +
NeoMAD, plateforme de développement d'applications/jeux pour mobiles. Il permet aux développeurs de créer à partir d’un code unique (Java) une application native sur les différentes technologies mobiles (iOS, Android, Windows Phone 7.1, BlackBerry, JavaME, Bada, Symbian...) en respectant le look et l'ergonomie.

Le résultat obtenu est identique aux développements natifs de chaque cible.

Plusieurs fonctionnalités font sa force : chaîne de compilation unifiée, compilation conditionnelle, intégration code natif, génération de projet natif, pilotage simulateurs, plugins pour Eclipse et NetBeans etc...

ang Java SE 7.0 - Dolphin

Éditeur : Oracle +
Java Standard Edition 7. Le kit de développement pour la plateforme Java.

ang Java Mobile SDK

Éditeur : Oracle +
Java Mobile SDK contient un l'ensemble d'outils nécessaires au développement d'applications Java pour mobiles, PDA, etc.

ang J2EE 1.4 SDK

Éditeur : Oracle +
Java 2 Platform Enterprise Edition contient tous les fichiers nécessaires à la compilation et à l'exécution d'une application Java orientée entreprise.

ang Mise en page des composants JavaFX utilisant les Panes à Layout avec FXML sous Scene Builder

Licence : Libre
Ce code source est un exemple d'utilisation des Panes à Layout pour faire la mise en page des composants JavaFX.

L'objectif c'est de résoudre le problème de dimensionnement et de redimensionnement automatique des composants au moment de changement des dimensions de la fenêtre principale.

Je tiens à souligner, que pour ces cas de mise en page dont le dimensionnement et redimensionnement doivent être en harmonie avec tous les composants, de la scène, alors on peut facilement régler cela avec Scene Builder sans avoir besoin à personnaliser des styles CSS, ou même modifier les propretés de dimensions et autres.

La sourie toute seul peut suffit à un très grand niveau pour la mise en page et positionnement des éléments, les liant entre elles, mais juste avec quelques astuces à prendre en considération.

Avant tout, il y a un principe à ne pas toujours oublier (qu'on travail avec en html par exemple), c'est que tout composant qui est sensé changer de dimension ou position si on redimensionne le reste ou la fenêtre, alors il doit être en position absolue dans son conteneur et son conteneur doit l'être, et ainsi de suite jusqu’à la fenêtre principale.

Alors, en FXML ce n'est pas qu'on besoin de préciser position:ablsolute sur les fichiers CSS, non et non.

La bonne pratique est d'exploiter la puissance Panes à Layout qui sont fait pour la mise en page, ceci en choisissant le bon Pane.

Sans modification de CSS (sauf pour spécifier une couleur d'un seul composant), ni modification du code FXML , ni du Java, Voci un exemple qui a permis en créant une fenêtre d'avoir en bref le résultat qui suit en moins de 10 minutes:

  • un Menu Bar placé en haut, dont la largeur se redimensionne avec la fenêtre, par ce qu'il est lié avec.
  • un Tool Bar, en haut aussi, qui se colle au Menu Bar avec hauteur personnalisé à la sourie, mais avec le même comportement que le Menu Bar en largeur
  • un Scroll Bar placé à droit, juste dans le coin, dont la hauteur peut se redimensionner avec celle de la fenêtre
  • un Tabed Pane qui prend le reste de l'espace de la fenêtre, après ce qui est cité en haut, et se peut redimensionner aussi avec la fenêtre
  • à l'intérieur Tabed Pane , le premier Tab(c'est à dire le panneau container ), contient un Anchor Pan avec une hauteur personnalisé avec la sourie, mais la largeur est lié à celle du panneau contenu du premier Tab, du coup il peut se redimensionner avec si on agrandi la fenêtre. J'ai modifié juste la couleur a vert avec CSS pour pouvoir le voir, et le connaitre en cas de changement de dimension. On a ajouté un Label et un TextField à l'Anchor Pane, qui vont gardé leurs distance de gauche, au cas où la fenêtre s'agrandit
  • on a placé un Table View qui prend le reste de l'espace d'en bas à l'intérieur du du panneau container du premier Tab, c'est à dire en bas du Anchor Pane


Vous pouvez visualiser le résultat avant et après redimensionnement des fenêtres, en consultant les images en pièce jointe
Je vais expliquer comment j'ai fais et le code source est disponible.

Pour arriver de cette fin on a en joué avec les différents Panes à Layout, et la bonne pratique selon moi pour une scène pareil, c'est d'avoir une scène dont la racine(root) est un Border Pane. On a commencé avec : File->New with Root Container->Broder Pane

Pour rappel un Border Pane laisse bien les éléments containers s'adapter aux dimensions du Border Pane, mais en lui précisant si on veut l’élément d'en haut , bas, gauche, droite et centre.

Je veut dire par container un noeud qui est censé en général contenir d'autres noeds même s'ils sont des contrôles, dont par défaut le contexte de largeur et de hauteur sont dynamiques comme les Pane et les Chart, Table View, Web View... ou dont par défaut le contexte de largeur seulement est dynamique comme les Tool Bar, Menu Bar, Scroll Bar horizontales, ou dont par défaut le contexte de hauteur seulement est dynamique comme les Scroll Bar vertical, Séparator vertical... Je désigne un élément à contexte de dimension fixe, les éléments qui sont censés par défaut avoir des dimensions fixes comme les boutons...

Sur un Border Pane tout éléments va se comporter selon son contexte, mais selon le contexte de la place choisit (haut bas,centre..).

Les éléments placés à gauche et à droite, se collent respectivement au coins gauche et droit , seul le contexte de hauteur dynamique est prise en compte ici, les éléments prennent toute la hauteur du Border Pane excepté les espaces occupés par des éléments de haut et bas. La largeur dépendra de nous, ou celle par défaut.

Par contre les éléments d'en haut et d'en bas prennent toute la largeur en laissant aucune espace, c'est le contexte de largeur qui est prise en compte ici, la hauteur des éléments reste par défaut ou on le personnalise. Le contexte de largeur reste dynamique bindé avec celui de la largeur du Border Pane.

L’élément du centre du Border Pane, prend le reste de l'espace en hauteur et en largeur, si l’élément possède à la fois un contexte de largeur et de hauteur dynamiques. Si on insère un seul élément au centre du Border Pane, alors ce dernier va se comporter comme un Stake Pane, il va bindé ses dimensions au dimensions du container, en fonction du contexte. Un élément à contexte de dimension fixe serait rangé au centre.

Revenons à présent à notre exemple, le root est un Border Pane, pour pouvoir placer les deux élément Menu Bar et Tool Bar en haut, je ne peux pas les déposer tous les deux directement en haut du Border Pane, car c'est une place pour un élément, alors il me faut un panneau à contexte de largeur dynamique qui sera bindé automatiquement avec la largeur du Border Pane. Alors le candidat c'est le VBox(son contraire c'est HBox), c'est ça sont travail. On le glisse on le dépose en haut du Border Pane.

On glisse et on dépose les deux Bar sur le Vbox, ils prendrons automatiquement toute la largeur du VBox, si on veut, on peut modifier la hauteur du Tool Bar, au cas où on veut mettre de grands boutons ou icones dessus et puis avec la sourie on agence la hauteur du VBox, pour correspondre exactement à la hauteur des deux Bar, sauf si on veut laisser de l'espace entre le Tool Bar et l’élément du centre du Border Pane. La hauteur du VBox restera tel qu'on l'a laissé même si on redimensionne la fenêtre.

A droite, on a seulement un Scroll Bar à placer, alors on peut le déposer directement à droite du Border Pane, il ira au coin droit, prendre toute la hauteur du Border Pane en soustrant celle du Vbox.

Bon, on a pas mis quelque chose à gauche dans notre exemple, mais on pourrait le faire, en mettant un Tree View ou List View..qui prendrait toute la hauteur, mais la largeur c'est à nous de fixer.

Pour l'espace restant après insertions de nos éléments on glisse et on dépose un Tabed Pane au Centre du Border Pane, c'est un élément à contexte de hauteur et largeur dynamique alors, il va prendre toute l'espace, même l'espace de l’élément gauche et en bas, vides.

Alors on veut à présent insérer un panneau Anchor Pane et un Table View sur le contenu du premier Tab de notre Tabed Pane, mais attention, on veut que les deux aussi suivent le redimensionnement du Tabed Pane, qui lui suit le Border Pane. Mais comment faire ?!!

Astuce

On supprime d'abord l'Anchor Pane qui vient par défaut, qui représente le container du premier Tab

L'Anchor Pane ne va pas binder ses dimensions à celles du Table View et du Anchor Pane qu'on veut insérer, certes l'Anchor Pane est bindé au Tabed Pane, mais il ne peut pas automatiquement binder ses enfants

Que ce qu'on insère? Et bien on ne peut pas utiliser un Vbox, car au dimensionnement il y aura de la place restante en bas, un HBox, c'est le côté droit qui restera vide. Alors ?

Et bien, on revient sur notre ami Border Pane, on le glisse et on le dépose sur le premier Tab du Tabed Pane, Après on insère l'Anchor Pane en haut du Border Pane, on fixe la hauteur qu'on veut avec la sourie, si on veut.

Mais attention, il va falloir décider sur l'avenir du Table View, car si vous l'insérez en bas, au dimensionnement, sa hauteur restera intacte, c'est le Anchor Pane qui sera le maître à prendre toute l'espace disponible, mais par contre si vous déposez votre Table View au Centre, la hauteur du Anchor Pane restera fixe, au dimensionnement de la fenêtre, le Table View prendra l'espace disponible et c'est le cas de notre exemple.

J'ai juste modifié la couleur de l'Anchor Pane pour pouvoir l'observer en précisant sur son style : -fx-background-color:green; J'ai après ajouté un Label a couleur blanche et un Text Field vous savez tous ça. Voici la fin de notre travail.

Une question se pose, mais quand on redimensionne la fenêtre le Table View n'organise pas ses colonnes pour suivre sa largeur qui a augmenté. Comment faire ? On l'a pas fait sur le code de notre exemple. Mais Là à présent il faudra jouer avec CSS ou du Code Java.

Astuce

En java on définit la largeur de chaque colonne, quand vous allez définir les contenus de vos colonnes n'oubliez pas de préciser pour chaque colonne le pourcentage devant les autre comme ça:
col1.setPercentWidth(25);

ang GCJ

Éditeur : GNU +
GCJ est un compilateur Java permettant de compiler son code directement en code natif. C'est-à-dire éxécutable sans JVM. Ce compilateur est développer par la fondation GNU.

ang J2SE 1.4 - Merlin

Éditeur : Sun Microsystems +
Java 2 Standard Edition contient tous les fichiers nécessaires à la compilation et à l'exécution d'une application Java.

ang Open JDK

Éditeur : Open JDK Community +
Open JDK est la version libre du langage de programmation Java

ang Java EE 6 SDK

Éditeur : Oracle +
Java Platform Enterprise Edition 6 contient tous les fichiers nécessaires à la compilation et à l'exécution d'une application Java orientée entreprise.

ang Java EE 5 SDK

Éditeur : Oracle +
Java Platform Enterprise Edition 5 contient tous les fichiers nécessaires à la compilation et à l'exécution d'une application Java orientée entreprise.

ang Oracle JRockit JVM

Éditeur : Oracle +
JRockit est une machine virtuelle proposée par Oracle principalement utilisé avec Weblogic

ang GNU Classpath extensions

Éditeur : GNU +
GNU Classpath Extensions est un projet proposant des implémentations open-source des packages (javax) et des extensions fournies par Sun, notamment : JavaBeans™ Activation Framework, JavaMail, JAXP.

ang GNU Classpath

Éditeur : GNU +
Ce projet essaye de fournir des implémentations libres des classes et librairies standard de Sun.

ang Excelsior JET

Éditeur : ExcelSior +
Jet est un très puissant compilateur java commercial qui permet de compiler nativement son code source Java, c'est-à-dire que le code pourra être éxécuté sans JVM.

ang Kaffe

Éditeur : Kaffe +
Kaffe est une implémentation Open Source de la machine virtuelle Java.

ang Jikes

Éditeur : IBM +
Jikes est un compilateur Java OpenSource initialement développé par IBM.

ang Java Card SDK

Éditeur : Oracle +
Java Card est le framework Java pour le développement d'applications sur cartes

ang J2SE 5.0 - Tiger

Éditeur : Oracle +
Java 2 Standard Edition 5. Le kit de développement 5.0 pour la plateforme Java.

ang Java 6.0 - Mustang

Éditeur : Oracle +
Java Standard Edition 6. Le kit de développement pour la plateforme Java.

19 éléments

 
 
 
 
Partenaires

PlanetHoster
Ikoula