FXML est un langage de markup qui permet de simplifier la déclaration d'interfaces JavaFx.
> [!tip] SceneBuilder
> SceneBuilder permet de concevoir visuellement des interface qui sont enregistrées au format FXML.
## Exemple
La même composition que lors du cours précédent avec FXML.
![[fxml-example-centered.png|219]]
```java
@Override
public void start(Stage stage) throws IOException {
// La création et l'agencement des composants
// est déléguée dans un fichier FXML
FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 320, 240);
stage.setTitle("Hello!");
stage.setScene(scene);
stage.show();
}
```
```xml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Text?>
<StackPane>
<VBox style="-fx-alignment: center">
<Text text="Hello World!"/>
<Button text="Button"/>
</VBox>
</StackPane>
```
## Controlleur
Une classe qui peut s'interfacer avec nos vues FXML.
## À suivre
[[Canvas]]