我的自定义控件是否应该依赖于Controller类或接口?

时间:2014-05-23 08:31:13

标签: java javafx javafx-2 custom-controls javafx-8

假设我在我的应用程序中创建了一个自定义控件。此自定义控件可以放在另一个布局的FXML文件中,也可以通过代码动态添加。容纳此自定义窗口小部件的父容器必须能够响应其更改。

我的自定义小部件是否应该使用INTERFACES(多态)或CONTROLLER传递?

前者要求任何父类动态地将它添加到它们的布局中实现WidgetInterface,以便它可以处理更改。

后者允许控制器类在构造期间自行传递,以便窗口小部件可以告诉父控制器根据更改进行操作。这最适用于FXML注射。但是,此方法的问题在于它只允许一个父控制器类控制窗口小部件。

我的小部件如何被任何类,任何地方使用,并且可以轻松地从FXML注入而没有问题?通过注入方法,它将尝试调用initialize()并在可能没有控制器类时依赖它。

1 个答案:

答案 0 :(得分:0)

我想说最好的选择是使用控制器,因为正如你所说,它们可以很好地与FXML注入配合使用。

我不知道让一个父控制器类控制窗口小部件是一件坏事,因为一个类可以实现你选择的接口,甚至扩展另一个类,继承它的方法/属性。

另外,如果您将fxml导入场景构建器,甚至可以使用Scene Builder轻松操作窗口小部件。