【发布时间】:2014-03-10 21:00:52
【问题描述】:
我是第一次使用 javafx 和场景构建器,据我了解,您在场景构建器中为对象创建的 fx:id 必须与相关控制器类中该对象的变量名称匹配。对于我现在正在编写的 GUI,所有按钮都遵循它,但是当我添加 ContextMenu 时,当名称匹配时出现错误。但是,如果我将 fx:id 更改为与控制器类中的变量名不匹配,则程序将运行。怎么回事!?
EClassDTAT.fxml
<contextMenu>
<ContextMenu fx:id="BasicShapesCST">
<items>
<MenuItem mnemonicParsing="false" text="Circle" fx:id="BSCircle" />
<MenuItem mnemonicParsing="false" text="Square" fx:id="BSSquare" />
<MenuItem mnemonicParsing="false" text="Triangle" fx:id="BSTriangle" />
</items>
</ContextMenu>
</contextMenu>
EClassDTATController.java
@FXML
private MenuItem BSCircle;
@FXML
private MenuItem BSSquare;
@FXML
private MenuItem BSTriangle;
@FXML
private ContextMenu BasicShapesCST;
再次澄清,当名称匹配时,我得到一个错误,当名称不匹配时,程序运行。这是错误:
Can not set com.sun.webpane.platform.ContextMenu fieldapplication.EClassDTATController.BasicShapesCST to javafx.scene.control.ContextMenu /GUIworkspace/GUIs/bin/application/EClassDTAT.fxml:101
【问题讨论】:
标签: java javafx javafx-2 scenebuilder