在我的应用程序中,我有View
观察到Model
更改。 Controller
负责处理由View
派遣的事件和更新Model
。Java MVC:使用观察者模式更新视图
为了举例,假设我有两个视图。首先,InputView
包含两个JSpinner
元素(Spinner1
和Spinner2
)。其次,ResultView
,包含JLabel
来自纺纱厂的值。作为附加限制,我们希望Spinner2
的值取决于Spinner1
的值。可以说,Spinner2
中的最小值应该是2x
,当前值为Spinner1
。
当我们更改Spinner1
的值Controller
收到ChangeEvent
并更新Model
。由于我们还需要调整Spinner2
的值,因此将会发送另一个ChangeEvent
并且第二次更新Model
。这个模式的问题是,每更新一次Model
更新观察View
刷新。因此,在此示例中,View
将刷新3次或4次而不是一次(Spinner1
更改,Spinner2
最小值更改,Spinner2
值更改)。这会导致闪烁。
如何确保在所有更改完成后View
只更新一次?
请张贴SSCCE,因为我不知道闪烁,您的代码中必须存在另一个棘手的问题 – mKorbel 2012-01-08 13:56:55
闪烁我的意思是随之而来的刷新视图。如果我们使用某种图表或任何比标签更复杂的图表,多个刷新将会显示 – 2012-01-08 16:00:41