FXML

A l'hora de crear elements gràfics tenim dues opcions: crear-los programàticament o bé amb un arxiu de tipus XML anomenat FXML. El format FXML facilita el dibuix mitjançant eines de disseny com el Scene Builder. A més, permet associar el codi XML amb el codi Java:

  • Cal definir un controlador, un objecte Java que serà el nexe de comunicació del món XML i el món Java. Aquest ha d'implementar la interfície javafx.fxml.Initializable.
  • Defineix associacions entre objectes al FXML (propietat fx:id dels elements) i objectes Java del controlador.
  • Defineix associacions entre accions al FXML (propietat onAction dels elements) i mètodes Java del controlador.

Per a carregar un arxiu FXML cal fer les següents operacions:

FXMLLoader loader = new FXMLLoader(); loader.setController(controlador); loader.setLocation(getClass().getResource("/cami/arxiu.fxml")); Parent parent = loader.load(); Scene scene = new Scene(parent);

El camí pot ser absolut (utilitzant la jerarquia de paquets) o bé relatiu al paquet actual, sense utilitzar camí.

Les associacions al FXML es poden fer utilitzant un ID i amb una action:

<Label fx:id="inputLabel"> ... </Label> ... <Button ... onAction="#onButtonClick" ... />

Aquest codi es correspondrà amb el següent al controlador:

@FXML private Label inputLabel; ... @FXML private void onButtonClick(ActionEvent event) { ... }

Amb aquest codi podem accedir a l'etiqueta definida al XML mitjançant l'objecte inputLabel, i cada cop que es cliqui al botó es cridarà al mètode onButtonClick.