FXML tutorial (19) – wiązanie wyrażeń
Plik listing19_expressions_binding.fxml
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.layout.VBox?> <?import javafx.scene.control.Label?> <?import javafx.scene.control.TextField?> <?import java.lang.Double?> <VBox xmlns:fx="http://javafx.com/fxml"> <fx:define> <Double fx:id="w" fx:value="100" /> </fx:define> <TextField fx:id="tf" prefWidth="$w" /> <Label fx:id="lab1" text="${'Wpisałeś: ' + tf.text}" prefWidth="${w * 2}" /> </VBox>
Analizator skąłdni podkreśłi niektóre partie kodu na czerwono, ale kod jest prawidłowy i uruchamia się bez problemów.
Klasa Listing19_expressions_binding.java
package codes; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.layout.VBox; import javafx.stage.Stage; import java.net.URL; public class Listing19_expressions_binding extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { try { URL fxmlUrl = this.getClass().getClassLoader() .getResource("resources/listing19_expressions_binding.fxml"); VBox root = fxmlUrl != null ? FXMLLoader.load(fxmlUrl) : new VBox(); Scene scene = new Scene(root, 150, 80); stage.setScene(scene); stage.show(); } catch (Exception e) { e.printStackTrace(); } } }
Po uruchomieniu zobaczymy: