Programmation JavaFX/Classes 2D
Hiérarchie des classes 2D
modifierLa hiérarchie de classes ci-dessous montrent les classes communes aux application 2D et 3D, vues précédemment et les classes spécifiques à la 2D.
Classes de base
modifierLa classe de base des composants JavaFX est Node
.
Il s'agit de la classe utilisée pour l'ajout de nœuds dans les conteneurs (par exemple Pane
).
Parmi les sous-classes, il y a la classe Parent
servant de base à tous les composants pouvant contenir d'autres composants (nœuds enfants dans l'arbre).
Il y a également la sous-classe MediaViewer
héritant directement de la classe Node
, ce qui signifie que ce composant ne peut pas contenir d'autres composants, et aussi qu'il peut être ajouté à n'importe quel composant Parent
. Voir le chapitre Jouer une vidéo ou un son pour une utilisation concrète de la classe MediaViewer
.
La classe Region
est la classe de base des composants de type Pane
et définit une composition similaire à celle du modèle de boîte en CSS[source 1] :
marge extérieure (Margin
)
bordure (Border
)
espace intérieur (Padding
)
aire intérieure (ContentArea
)
La similitude avec le modèle de boîte en CSS est due au fait que les composants JavaFX peuvent être stylisés avec des règles CSS (voir le livre Le langage CSS).
Styles CSS sur les composants JavaFX
modifierLes composants JavaFX dérivant de la classe Node
peuvent être stylisés en CSS.
Cependant, les styles CSS supportés sont limités[source 2], car basés sur W3C CSS version 2.1 avec quelques ajouts spécifiques à JavaFX.
De plus les propriétés doivent être préfixées par -fx-
.
Exemple de code :
package org.wikibooks.fr;
import javafx.application.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.paint.*;
import javafx.stage.*;
public class CssTest extends Application
{
public static void main(String[] args)
{
Application.launch(args);
}
@Override
public void start(Stage stage) throws Exception
{
StackPane root = new StackPane();
root.setStyle("-fx-background-color: #00f;"); // Style CSS : fond bleu.
// Création de la scène :
Scene scene = new Scene(root, 500, 500, Color.BLACK);
stage.setScene(scene);
stage.setTitle("CSS test");
stage.show();
}
}
Sources
modifier- ↑ JavaFX Region - https://jenkov.com/tutorials/javafx/region.html
- ↑ JavaFX CSS Reference Guide - https://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html