【问题标题】:Mismatching Javafx fx:id and variable name in controller class控制器类中的 Javafx fx:id 和变量名不匹配
【发布时间】: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


    【解决方案1】:

    您对 ContextMenu 的导入错误。你已经导入了

    com.sun.webpane.platform.ContextMenu 
    

    你应该在哪里导入 javafx 的上下文菜单

    javafx.scene.control.ContextMenu
    

    【讨论】:

    • eclipse 类型的过滤器对于删除垃圾包非常有用。
    • 哇,非常感谢,解决了。当 eclipse 建议导入时,我只看到了 ContextMenu 并认为这是正确的。
    • NetBeans 显示两者,通过在组合框中自动选择它来建议适当的一个,并让您选择正确的一个。右键单击编辑器肉并选择“修复导入”,或执行 ctrl+shift+I。喜欢 NetBeans!
    猜你喜欢
    • 2019-03-27
    • 2017-01-01
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多