查找对象时javafx中的NullPoinerException

时间:2019-07-15 20:35:58

标签: java css javafx

我需要在FXML控制器中引用三个省略号:

.image-zoom img {
transition:all 0.5s; 
-moz-transition:all 0.5s;
-webkit-transition:all 0.5s;
overflow:hidden;
}

.image-zoom img:hover{
transform:scale(1.1);
-moz-transform: scale(1.1);
-webkit-transform:scale(1.1);
}

创建场景后将其传递给控制器​​:

<Ellipse fx:id="selectorontop" id="selectorontop" fill="WHITE" layoutX="121.0" layoutY="101.0" radiusX="14.0" radiusY="27.0" stroke="WHITE" strokeType="INSIDE" style="-fx-opacity: 70%;" visible="false" />
  <Ellipse fx:id="selectoronmiddle" id="selectoronmiddle" fill="WHITE" layoutX="121.0" layoutY="168.0" radiusX="14.0" radiusY="27.0" stroke="WHITE" strokeType="INSIDE" style="-fx-opacity: 70%;" visible="false" />
  <Ellipse fx:id="selectoronbottom" id="selectoronbottom" fill="WHITE" layoutX="120.0" layoutY="466.0" radiusX="14.0" radiusY="27.0" stroke="WHITE" strokeType="INSIDE" style="-fx-opacity: 70%;" visible="false" />

该场景已由控制器接收,但是无论是在主Java文件(如上所示)还是在Controller中,查找结果仍为“空”,我不知道为什么。

预先感谢

1 个答案:

答案 0 :(得分:2)

您使用的选择器按类型而不是ID进行选择。它选择类型为selectorontop的节点,我很确定这种类型不存在。 (至少在场景中没有这种类型的节点。)

您需要使用适当的CSS选择器。在这种情况下,您需要使用#selectorontop通过ID进行选择:

System.out.println("new: " +scene.lookup("#selectorontop"));