Currently, I'm making a client-side anime streamer, and currently learning JavaFX. I've created a static thumbnail, and I need to change the value of the static content. So, how do you change the value of a text element already defined in a .fxml file in JavaFX?
For reference, here's the code.
videoThumbnail.fxml
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.*?> <?import javafx.scene.image.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.text.*?> <AnchorPane prefHeight="387.0" prefWidth="243.0" style="-fx-background-color: #000000;" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="test.gui.Controller"> <children> <ImageView fitHeight="266.0" fitWidth="184.0" layoutX="36.0" layoutY="26.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@../images/mL0215_1024x1024.png" /> </image> </ImageView> <Label layoutX="36.0" layoutY="308.0" style="-fx-background-color: #000000;" text="My Hero Acadamia" textFill="WHITE"> <font> <Font name="System Bold" size="17.0" /> </font> </Label> </children> </AnchorPane> main.java
@Override public void start(Stage primaryStage) throws Exception { try { FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/videoThumbnail.fxml")); Pane root = (Pane) loader.load(); Scene scene = new Scene(new Group(root)); primaryStage.setTitle("test"); primaryStage.setScene(scene); primaryStage.show(); letterbox(scene, root); primaryStage.setFullScreen(true); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } Controller.java
package test.gui; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.input.MouseEvent; public class Controller { }
@FXML Label yourLabeland in the fxml file :fx:id="yourLabel"then you can use the object to change the valuesControllerclass needsimplements InitializableInitializable.