5

我有一个由一个控制器控制的 fxml 文件。我想将控制器分成多个部分,就好像放在一个控制器中一样会产生很长的代码。不幸的是,fx:controller 只能放在根目录下。对我如何分离控制器有什么建议吗?

4

4 回答 4

9

我建议创建自定义控件 - 使用几个较小的 FXML 文件而不是一个大的 FXML 文件。

这是教程:

http://docs.oracle.com/javafx/2/fxml_get_started/custom_control.htm

于 2013-06-02T11:33:41.670 回答
1

在加载 FXML 标记期间,仅规定为场景图指定一个控制器。您可以加载其他 FXML 标记文件和嵌套控制器,但我认为这不是您要问的。

在我看来,无论如何都无所谓。

您可以在任意数量的文件中编写任意数量的类,并让它们与您的控制器类交互,就像任何 Java 类可以与任何其他 Java 类交互一样。

我真的想不出任何特别好的理由为什么在加载时为场景图指定多个控制器会很有用。

于 2013-06-02T06:15:53.890 回答
1

您可以将 fxml 文件作为节点添加到另一个 fxml 中,两者都具有不同的控制器和场景构建器中的包含选项

于 2018-12-04T02:34:58.060 回答
0

通过这种方式,您可以创建同一个 FXML 文件的另一个控制器:

MyClass object= new MyClass();
FXMLLoader  root = new FXMLLoader(getClass().getResource("FXMLDocument.fxml"));
root.setController(object);
于 2020-04-16T13:49:07.087 回答