当前位置: 首页 > 知识库问答 >
问题:

JavaFX向普通java控制器添加FXML

邰昀
2023-03-14

我的第一个帖子,请温柔点。

我正在为一个简单的游戏制作一个JavaFX图形用户界面。我有一个FXML布局加载通过FXML文件加载器在这里:

Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));

然后我在Main.java创建一个按钮:

Button button = new Button("Jp", view);

以及为了显示:

primaryStage.setScene(new Scene(root));
primaryStage.show();

问题:我究竟如何将FXML布局和普通java按钮对象组合在同一场景中?它像苹果和桔子一样,不可能结合吗?我的IDE不允许我调用java文档中推荐的方法:

root.getChildren().add();

等等

请帮我和/或给我指个方向,我真的试过了。。。

共有1个答案

洪雅健
2023-03-14

Parent中定义的getChildren()方法是一个受保护的方法:因此您无法从Main类访问它,这就是代码无法编译的原因。

窗格覆盖此方法并使其公开,因此假设FXML文件的根元素是窗格(或窗格的子类),只需更具体地说明根的类型即可。换言之,再次假设您的FXML如我所期望的那样,请更改

Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));

Pane root = FXMLLoader.load(getClass().getResource("sample.fxml"));

 类似资料:
  • 我正在尝试JavaFX,但仍然有很多可能是愚蠢的初学者问题。 我今天的问题如下: 我在Scene builder and Controller中创建了一个流程窗格,我想在其中添加一个右键单击选项,打开一个关联菜单。 通过场景生成器,我添加了OnContextMenuRequest函数并在控制器中定义了它。 为了检查,我在函数中添加了一个打印命令和一个对话框,效果很好。 然而,上下文菜单不起作用。。

  • 我正在使用JavaFx和scene builder构建一个应用程序,但是除了添加Controller类之外,所有的工作都很好。 我得到以下错误: 主类 Gamescene1.fxml

  • 我对javaFX有问题。我正在做计算器,我将我的应用程序划分为3个FXML文件(1是只控制数字和运算符的控制器,2是文本字段的控制器,这是结果字段,最后一个应该让它们相互通信)。 我无法管理如何编写自己的方法,例如,当我在文本字段中按数字3时,在其他FXML中输入数字“3”,并且有自己的FXML文件。有一个空指针异常,所以我想我没有初始化这个文本字段。请帮我解决这个问题。有没有办法在MainCon

  • 我正在学习使用SceneBuilder创建一个新的JavaFX应用程序的教程,并尝试向.fxml文件添加一个controller类。 我正在使用Eclipse和Gluon的Scene Builder V8.1.1版本。 在哪里可以将我的.fxml文件连接到我的控制器Java类?

  • 问题内容: 我试图在JavaFX中获得TableView来动态显示内容。 当我运行程序时,出现此错误: 我的控制器名为“ UserInterfaceController.java”,它与FXML文件位于同一软件包下,我也已将该软件包导入了FXML中。为什么找不到控制器? FXML文件: 控制器: 主类: 问题答案: 使用FXML的全限定名来引用您的控制器: 后续问题的答案 对以下问题的回答解释了为

  • 我试图在JavaFX中获得一个TableView来动态显示内容。 当我运行程序时,出现以下错误: 我的控制器名为“UserInterfaceController.java”,它与FXML文件在同一个包下,我也在FXML中导入了包。为什么找不到控制器? FXML文件: 控制器: 主要类: