2

我有一个JavaFX-2用该语言编写的自定义组件fxml(我将其称为子级或子级),我用它JavaFX Scene Builder来创建它。我的一个视图类需要显示几个(~100)这些组件并与它们通信。考虑到MVC架构,最好的沟通方式是什么?

  1. (容器)模型 -> (儿童)模型
  2. (容器)控制器 -> (儿童)控制器
  3. (容器)控制器 -> (儿童)模型

基本上,我至少需要能够监视子 UI 和/或容器对象中发生的两种事件。

案例 1:用户单击了我的自定义组件(子组件)中存在的按钮(或与另一个对象交互),容器必须就更改进行通信。

案例 2:用户在容器上触发了一个事件,例如基于特定查询过滤组件,我需要与孩子们沟通这个变化。

提前感谢所有帮助。干杯

4

1 回答 1

1

我总是倾向于保持控制器之间的通信,而我的模型是 POJO,尽管它们使用 javafx 属性来存储数据。这似乎映射到选项#2。

父控制器调用子控制器相当容易,它所要做的就是加载它们并将它们保存在一个列表中。调用父母的孩子有点丑陋,因为它可能需要对父母的引用。我尝试通过在父级添加侦听器的子控制器上具有事件处理程序属性来避免这种情况。这使我的孩子控件非常可重复使用。

于 2012-11-01T10:37:44.227 回答