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

使用getController()访问javafx控制器类和调用控制器类的默认构造函数之间的区别

丘普松
2023-03-14

我对访问javafx控制器类有一些疑问。我已经看到,我们一直使用FXMLLoader类的getController()方法来访问控制器类。为什么我们不使用构造函数调用,使用new运算符并访问它。即像

 TestController mc =  new TestController();

共有1个答案

慕阳伯
2023-03-14

关于构造函数调用的用法,我会想到一些事情。您应该自己加载FXML文件,解析它并构造其中定义的节点图,然后执行以下步骤:

  • @fxml注释字段必须绑定在节点图和控制器类之间
  • 控制器中的eventHandlers必须附加到fxml中定义的正确节点
  • 在正确的时间、正确的位置调用构造函数的initialize()方法
  • fxmlloaderload()ing时所做的工作人员要多得多...

这些人员可以在FXMLLoader的源代码中找到。
话虽如此,您仍然可以自己调用构造函数,但在调用FXMLLoader的加载方法之前将其设置为FXMLLoader,如下:

TestController mc = new TestController();
FXMLLoader loader = new FXMLLoader();
loader.setController(mc);
loader.load();

这样,上面提到的所有“肮脏的工作”都将由FXMLLoader处理,然后“不要担心,要快乐”:)。

 类似资料:
  • 这让我的头撞到了墙上!!!!希望有人能给我指出正确的方向。我确信我在做一些完全愚蠢的事情。我找了又找,但似乎找不出为什么这不管用!!(在IntelliJ IDE 15.x上使用JDK8.x和Scenebuilder)。我试图在GUI上显示数据,但希望access通过编程将这些数据从其他类/方法发送给它。。。。下面是一个简单的概念,我在着手更大的项目之前,正试图让它发挥作用: 我的简单GUI在FXM

  • 我有Spring acpect,它会在我的应用程序中的每个控制器方法周围触发。在方面的主体中,我想访问方法签名中声明的所有请求参数。有没有一种简单的方法可以避免反思?

  • 1、类属性的访问控制 在 Java 中,有 public (公共)属性 和 private (私有)属性,这可以对属性进行访问控制。 那么在 Python 中有没有属性的访问控制呢? 一般情况下,我们会使用 __private_attrs 两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。 为什么只能说一般情况下呢?

  • 无法理解如何读取应用程序设置。启动之外的json值。反恐精英。例如,我想做的是在_布局中。cshtml,从配置中添加站点名称: 例如: 或者更好: 以下是我迄今为止的代码: [appsettings.json] [startup.cs] 也许我看错了文档,但我似乎无法在Startup类之外公开配置对象。

  • 问题内容: 大家好,我正在构建一个JavaFX项目并正在使用JavaFX Scene Builder2。我想将控制器链接到我的fxml文件,但是我看不到在Scene Builder 2中将控制器添加到我的fxml文件的可能性。我想知道是否有人可以帮助我。谢谢。 问题答案: 我偶然在SceneBuilder 2中找到了控制器属性。关闭左侧的层次结构菜单时,将显示“控制器”菜单,可以在其中声明我的控制