我开始接触JavaFX,并使用SceneBuilder开发GUI。我在java项目中有以下结构:
src/ # Main class and other classes..
src/[package]/IndexClass
src/[Another package]/ProductClass
src/base.fxml # I am using this as a template
在base.fxml中,我有一个菜单栏
,其中包含一个菜单项,比如一个按钮
,名为btnnew。在SceneBuilder中,我为该按钮声明了一个onAction
eventhandler,并试图将其连接到ProductClass中的一个方法。但是,ProductClass与base.fxml在不同的包中,当我单击base.fxml上的菜单项onaction
时,它显示为空。
如果你需要更多的澄清,让我知道,我会花一些时间来图表我的问题。
您需要将FXML文件连接到控制器。
在FXML页的根节点中,键入以下内容:
fx:controller="package.subpackage.ControllerName"
其中字符串是控制器的相对包路径。请注意,如果控制器位于不同于FXML文件的包中,您总是声明源包中的路径,这并不重要。您还可以通过右键单击FXML文件并选择“Make Controller”让Netbeans为您完成此操作。
@FXML private Button btnNew;
@FXML
void btnNew_OnAction(ActionEvent event) {
//body
}
也就是说,如果您真的想在同一屏幕上为各种GUI元素设置多个控制器,这是完全可能的。但是,每个控制器都需要一个不同的FXML文件。看看这个答案,它很好地解决了这个问题:创建多个控制器。
我希望此图表显示在场景生成器上。怎么可能。。??
我对屏幕生成器有一些问题 对于某些fxml,它会在加载后发生creash。我尝试了很多次运行它,但它阻塞了,我必须终止这个进程。 fxml正常,内容在我的应用程序中正确显示。下面是导致场景生成器崩溃的FXML示例。
我现在在Scene Builder中打开了项目,并在anchor窗格中添加了一个controller类,它为我自动完成了该窗格,因为它识别出我有一个controller类,并且看起来正确。 但是,当我返回到我的.fxml文件时,它将我的控制器标签用红色表示为错误,并表示还表示 我该怎么做呢?我完全按照教程... 项目文件结构如下: ProjectX>src>ProjectX(包)>controll
问题内容: 有什么方法可以从关联的类控制器获取FXML加载文件的Scene对象。 我正在做这样的事情: 但是我想要一个不引用AnchorPane控件的解决方案。 问题答案: 为什么不?Controller是一个抽象类,除非您有意让他知道,否则他不了解UI。 节点(包括AnchorPane)是另一个故事,它们几乎不存在于场景图的外部。因此,最好向Node询问有关其父母或场景的信息。 如果您仍然想单独
但我想要一个不引用AnchorPane控件的解决方案。
问题内容: 大家好,我正在构建一个JavaFX项目并正在使用JavaFX Scene Builder2。我想将控制器链接到我的fxml文件,但是我看不到在Scene Builder 2中将控制器添加到我的fxml文件的可能性。我想知道是否有人可以帮助我。谢谢。 问题答案: 我偶然在SceneBuilder 2中找到了控制器属性。关闭左侧的层次结构菜单时,将显示“控制器”菜单,可以在其中声明我的控制