利用JavaFX GUI设计中的观察者模式

时间:2015-08-09 23:50:19

标签: swing javafx observer-pattern observable

正如Swing上下文中提到的here,GUI设计经常使用observer pattern。经常使用EventListenerList中规定的方案,是否有一个Java FX示例,例如Converter,它关注模式本身?

1 个答案:

答案 0 :(得分:6)

如前所述here,JavaFX体系结构倾向于通过实现Observable接口的类来支持绑定GUI元素。为此,Irina Fedortsova在JavaFX for Swing Developers的第5章中将原始的Converter改编为JavaFX:Implementing a Swing Application in JavaFX

image

我概括了下面的程序,更新到Java 8并删除了对现在deprecated builder API的依赖。在下面的变体中,

  • 名为meters的{​​{3}}用作应用程序的Observable 模型

  • DoubleProperty的实例,例如TextFieldComboBoxSlider,每个都充当视图 >模型,以及为用户提供控制交互的方式。

  • ConversionPanel内,InvalidationListener添加ComboBox更新了TextField 视图根据需要反映当前选定的Unit模型;添加到TextField的类似侦听器会在用户输入时更新模型

  • 同一个模型ConversionPanel {/ 1}}的实例之间共享,链接滑块和任何听取的控件模型

    Slider
  • 每个slider.valueProperty().bindBidirectional(meters); 还有一个模型Control,用户可以在ComboBox的实例中进行选择。

    < / LI>

代码:

Unit