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

访问FXML控制器类

计弘
2023-03-14

共有1个答案

张智
2023-03-14

您可以从FXMLLoader中获取控制器

FXMLLoader fxmlLoader = new FXMLLoader();
Pane p = fxmlLoader.load(getClass().getResource("foo.fxml").openStream());
FooController fooController = (FooController) fxmlLoader.getController();

将其存储在您的主阶段中,并提供getFooController()getter方法。
从其他类或阶段,每次需要刷新加载的“foo.fxml”页面时,向其控制器询问:

getFooController().updatePage(strData);

updatePage()可以类似于:

// ...
@FXML private Label lblData;
// ...
public void updatePage(String data){
    lblData.setText(data);
}
// ...
 类似资料:
  • 在应用程序中使用JavaFX,我有一个main.fxml文件,其中包含一些fxml子文件。 我想从子控制器访问Main.fxml的MainController类。 我试着用一个例子来解释得更好: MainFXML: 主控制器: ChildFXML:

  • 但是,我得到一个NullpointerException,所以我假设它仍然找不到控件。 有人知道如何访问父控制器中加载的FXML元素吗?

  • 有没有减少代码冗余的方法?

  • 容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables 防火墙来进行管理和实现。iptables 是 Linux 上默认的防火墙软件,在大部分发行版中都自带。 容器访问外部网络 容器要想访问外部网络,需要本地系统的转发支持。在Linux 系统中,检查转发是否打开。 $sysctl net.ipv4.ip_forwardnet.ipv4.ip_forward = 1 如果为 0,

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

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