fx:script在场景构建器中显示NullPointerException

时间:2017-08-02 06:11:21

标签: javafx nullpointerexception javafx-8 fxml scenebuilder

我是JavaFX FXML的新手,我正在尝试fx:script这个" NMAESTAGE.fxml"文件如下:

<?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>

但问题是,当我尝试在场景构建器中打开fxml文件时,fx:script标记导致 NullPointerException 。它说&#34;确保NAMESTAGE.fxml是一个有效的fxml文件&#34;。

应用程序编译,构建和运行时没有任何错误。 使用fx:script标记删除5行以及onAction="nextAction()"部分,以某种方式解决问题。我不明白我在这里做错了什么。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

对我而言,这是一个由Scene Builder 2.0引入的错误;旧版本(1.1)没有问题