Reputation: 1
I am new with JavaFX FXML and I was trying fx:script
with this "NMAESTAGE.fxml" file below:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Region?>
<?language javascript?>
<VBox fx:id="root" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" spacing="10.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<HBox alignment="CENTER" prefWidth="200.0">
<children>
<Label prefHeight="17.0" prefWidth="83.0" text="Control name:" />
<Region prefHeight="25.0" prefWidth="0.0" HBox.hgrow="ALWAYS" />
<TextField />
</children>
</HBox>
<HBox prefHeight="26.0" prefWidth="228.0">
<children>
<Region HBox.hgrow="ALWAYS" />
<Button mnemonicParsing="false" onAction="nextAction()" prefHeight="25.0" prefWidth="53.0" style="-fx-background-radius: 0; -fx-background-color: rgb(0,110,215);" text="Next" textFill="WHITE">
<fx:script>
function nextAction(){
root.getScene().getWindow().hide();
}
</fx:script>
</Button>
</children>
</HBox>
</children>
<padding>
<Insets bottom="30.0" left="30.0" right="30.0" top="50.0" />
</padding>
</VBox>
But the problem is, when I try to open the fxml file in scene builder, the fx:script
tag is causing a NullPointerException. It says that "make sure NAMESTAGE.fxml is a valid fxml file".
The application compiles, builds, and runs without any error.
Removing the 5 lines with fx:script
tag along with the onAction="nextAction()"
part, somehow solve the problem. I don't understand what I am doing wrong here. Could anybody help?
Upvotes: 0
Views: 143
Reputation: 23
For me it's a bug, introduced by Scene Builder 2.0; the older versione (1.1) doesn't have the problem
Upvotes: 1