每当更新变量时自动执行代码

Ric*_*ard 1 java cocoa swing cocoa-touch objective-c

假设我有一个包含一些数据的程序.一些整数值,例如{1,5,10,3}.该程序具有显示数据的GUI.每个整数都转换为字符串并显示为标签.程序的几个不同部分可以更改数据,例如,单击时增加值的按钮.每次更改值时,必须更新相应的标签以显示新值.

也许是一个更常见的场景:说我们有一个控件,它既可以改变数据,也可以显示数据,例如滑块.每次移动滑块时,我们都希望数据发生变化,并显示在标签中(或许多不同的标签).但是还有其他数据可以改变的方式,当滑块条移动时.

对于Java Swing,目前最好的做法是什么,所以我们永远不会忘记更新标签?

Objective C Cocoa的相同问题.

tjg*_*184 6

我先来看一下观察者的设计模式.

您可以观察数据的变化并相应地更新UI.每种语言都有不同的实现方式.


mak*_*mov 6

我认为在Swing中最常用的方法是使用PropertyChangeListeners.