Aller au contenu

Programmation JavaFX/Classes 2D

Un livre de Wikilivres.

Hiérarchie des classes 2D

[modifier | modifier le wikicode]

La 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

[modifier | modifier le wikicode]

La 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

[modifier | modifier le wikicode]

Les 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();   
	}
}


  1. JavaFX Region - https://jenkov.com/tutorials/javafx/region.html
  2. JavaFX CSS Reference Guide - https://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html