【发布时间】:2017-04-07 13:25:44
【问题描述】:
我有 6 个具有一个控制器的 fxml 文件。我需要的不是第一个 fxml 而是第 5 个 fxml 文件(PasswordArray.fxml)的初始化方法来自定义按钮。由于在加载第一个 fxml 文件(Home.fxml) 时会自动调用 initialize() 方法,因此会显示错误。如何在 PasswordArray.fxml 之后使用现在的初始化方法。 我在互联网上搜索,但没有找到我的问题的任何解决方案。我应该使用不同的控制器吗,因为我需要多个 fxml 文件的初始化方法。Main FXML File (Home.fxml)
Controller (MajorProjectController.java) [initialize()方法][3]
【问题讨论】:
-
“我有 6 个具有一个控制器的 fxml 文件”。第一:你没有。每次加载 FXML 文件时都会获得一个新控制器。您的意思可能是“我有 6 个 fxml 文件,所有这些文件的控制器都来自同一个类”。只是不要这样做。为每个 FXML 创建一个不同的控制器类。
-
感谢#James_D 的建议。但是我有一个查询“我不需要对所有 fxml 文件进行其他自定义操作,但只是一些文件需要初始化方法来在 GUI 上执行一些额外的操作。所以我应该为我的所有 fxml 文件使用不同的控制器还是仅仅那些需要初始化方法来执行一些自定义的文件?"
-
您基本上应该从不对不同的 FXML 文件使用相同的控制器类。唯一可能的例外(我能想到的)是,如果您有两个 FXML 文件,它们具有完全相同相同的控件集,但它们的布局不同(例如,如果您正在为桌面版和移动版都具有不同的布局:但无论如何,由于各种原因,您不太可能使其工作)。
-
好的,但是我们怎样才能多做一个控制器呢?由于我是 javafx 和 fxml 的新手,我所知道的是“当我们在 netbeans 中创建新的 'JavaFX FXML Application' 时,它会自动创建一个控制器 java 文件。”我现在如何创建一个新的控制器文件?
-
新建一个类。我真的不明白你在问什么。
标签: controller javafx-8 fxml fxmlloader