我第一次使用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
您对ContextMenu的导入错误。您已导入
com.sun.webpane.platform.ContextMenu
您应该在何处导入javafx的上下文菜单
javafx.scene.control.ContextMenu
这可能是先导错误,但是FXML属性没有绑定到fx:id上的控制器类。我把它简化为一个微不足道的例子,但仍然“没有快乐”。我忽略了什么? 相关的Java代码是... 自我不是这里的问题,我很确定我忽略了一些简单的东西。
我真的很难理解JavaFX控制器,我的目标是写一个TextArea来充当日志。 我的代码在下面,但我希望能够改变值等从另一个类,我可以调用时需要。我试图创建一个扩展初始化的控制器类,但我无法使它工作。有谁能指引我正确的方向吗?
有两个文件user.fxml和userlistpanefx.java。在这个场景中,错误来自userListView变量。我写的东西是正确的,但错误来自空指针异常。那么我能为这个问题做些什么。两个变量的咒语之间没有错过匹配。 错误语句
有没有办法将参数传递给fxml文件中的onAction方法?或者,我可以以某种方式获得调用onAction方法的组件的fx:id吗? 我有几个按钮可以做同样的事情,比如说5个带有ID button1-button5的按钮,当按下时,应该打印相应的数字1-5。我不希望有5个onAction方法与这个变量相同。 感谢您的帮助,
我知道有很多关于传递参数的线程,但我仍然不明白。 我有阶段与类。在这个类中,我创建了例如变量。然后我单击此阶段上的按钮,它使用创建新阶段,我可以在其中修改此值。在中是值的setter和getter方法。在中,我可以从中获取值并对其进行编辑,但最后当我关闭第二阶段时,我尝试通过中的setter方法将此编辑后的值设置为新数字。然后我关闭它,然后像第一次一样再次打开它。但是我看不到新的编辑值,我再次看到
这让我的头撞到了墙上!!!!希望有人能给我指出正确的方向。我确信我在做一些完全愚蠢的事情。我找了又找,但似乎找不出为什么这不管用!!(在IntelliJ IDE 15.x上使用JDK8.x和Scenebuilder)。我试图在GUI上显示数据,但希望access通过编程将这些数据从其他类/方法发送给它。。。。下面是一个简单的概念,我在着手更大的项目之前,正试图让它发挥作用: 我的简单GUI在FXM