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

如何从另一个控制器访问FXML方法

史钊
2023-03-14
@FXML
private void onExitButtonClick() {
    System.out.println("Goodbye " + System.getProperty("user.name"));
    System.exit(0);
}
@FXML
private void onExitButtonClick() {
    System.out.println("Goodbye " + System.getProperty("user.name"));
    System.exit(0);
}

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

共有1个答案

苏嘉志
2023-03-14

具体回答问题标题

如何从另一个控制器访问FXML方法

不要。

    null
    null

如果您想重构,合理的设计是不在控制器中执行应用程序逻辑,而是有一个共享域级别的服务层,与UI和控制器分开,控制器在共享对象模型上工作。

有关信息,请参见:

  • 在JavaFX中应用MVC
  • 用JavaFX编写mvc的Eden编码。
@FXML
private void onExitButtonClick() {
    MyApplication.exit();
}
public static void exit() {
    System.out.println("Goodbye " + System.getProperty("user.name"));
    Platform.exit();
}

这种在应用程序中调用静态函数的方法也可以用于其他共享逻辑。

除了小的应用程序之外,我只推荐这种方法用于与应用程序生命周期直接相关的逻辑。

对于大型应用程序中的一般逻辑,推荐使用mvc、具有绑定属性的共享对象模型和依赖注入等技术。

@FXML
private void onExitButtonClick() {
    Platform.exit();
}
@Override
public void stop() {
    System.out.println("Goodbye " + System.getProperty("user.name"));
}
 类似资料:
  • 我有两个控制器和。 在中,我有一个名为的方法。 如何在中访问此方法?

  • 问题内容: 我需要从另一个控制器内的另一个控制器访问方法。我该怎么做?我可以使用方法吗? 我可以在当前控制器中包含该控制器,并使其成为对象并通过该对象访问该方法吗?这样可以吗? 我想调用另一个控制器的表单方法— newAction。 问题答案: 您可以将控制器定义为服务,然后在另一个控制器中获取它。 在定义所需的控制器即服务中: 然后,在任何控制器中,您都可以通过容器获取此服务: 在文档中有一些关

  • 需要你的帮助!这可能是更多的设计角度,但我在我的应用程序中使用这个模式,所以想得到一个想法。 我的问题是直接或间接地从一个控制器访问另一个控制器。是否有任何优雅的设计方法来做到这一点,而不是在另一个控制器中保留一个控制器的引用。 提前致谢

  • 我有两个控制器和。我正在读一本书的内容。来自的txt文件,我希望将该文本放置在的文本区域中。代码在中运行并读取良好,但当打开中的窗口时,从中读取的内容。文本内容在文本区域中不可见。我的显示String mine包含内容,但它不显示在的文本区域中。请帮助任何人。非常感谢。 FXMLDocumentController代码 在中,有一个我删除了和,这样代码就可以工作了。

  • 类:DbUserController.cs txtUrl=性能页。fxml TextField c.txtUrl。setText(“测试”); 我指的代码不起作用。 它不会将“TEST TEST”写入TextBox。