我试图从FXML 参考运行以下示例:
这个例子包括在JavaScript脚本中声明一个String变量,然后在FXML中使用它与$
运算符一起在Label中显示String.
问题是当我用Java 8u40运行这个例子时,Label是空的而不是显示声明的String.
JavaFxComponent.java:
public class JavaFxComponent extends VBox {
public JavaFxComponent() throws Exception {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/JavaFxComponent.fxml"));
fxmlLoader.setRoot(this);
fxmlLoader.load();
}
}
Run Code Online (Sandbox Code Playgroud)
JavaFxComponent.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?language javascript?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<fx:root type="javafx.scene.layout.VBox" xmlns="http://javafx.com/javafx/8"
xmlns:fx="http://javafx.com/fxml">
<fx:script>
var myText = "This is the text of my label.";
</fx:script>
<Label text="$myText" />
</fx:root>
Run Code Online (Sandbox Code Playgroud)
JavaFxTest:
public class JavaFxTest extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setScene(new Scene(new JavaFxComponent()));
primaryStage.show(); …
Run Code Online (Sandbox Code Playgroud)