|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.Observable
public class Observable
此類別表示模型視圖範例中的 observable 物件,或者說「資料」。可將其子類別化,表示應用程序想要觀察的物件。
一個 observable 物件可以有一個或多個觀察者。觀察者可以是實作了 Observer 介面的任意物件。一個 observable 實例改變後,調用 Observable
的 notifyObservers
方法的應用程序會通過調用觀察者的 update
方法來通知觀察者該實例發生了改變。
未指定發送通知的順序。Observable 類別中所提供的預設實作將按照其註冊的重要性順序來通知 Observers,但是子類別可能改變此順序,從而使用非固定順序在單獨的執行緒上發送通知,或者也可能保證其子類別遵從其所選擇的順序。
注意,此通知機制與執行緒無關,並且與 Object 類別的 wait 和 notify 機制完全獨立。
新創建一個 observable 物件時,其觀察者集是空的。當且僅當 equals 方法為兩個觀察者返回 true 時,才認為它們是相同的。
notifyObservers()
,
notifyObservers(java.lang.Object)
,
Observer
,
Observer.update(java.util.Observable, java.lang.Object)
建構子摘要 | |
---|---|
Observable()
建構一個帶有零個觀察者的 Observable。 |
方法摘要 | |
---|---|
void |
addObserver(Observer o)
如果觀察者與集合中已有的觀察者不同,則向物件的觀察者集中添加此觀察者。 |
protected void |
clearChanged()
指示物件不再改變,或者它已對其所有的觀察者通知了最近的改變,所以 hasChanged 方法將返回 false。 |
int |
countObservers()
返回 Observable 物件的觀察者數目。 |
void |
deleteObserver(Observer o)
從物件的觀察者集合中刪除某個觀察者。 |
void |
deleteObservers()
清除觀察者列表,使此物件不再有任何觀察者。 |
boolean |
hasChanged()
測試物件是否改變。 |
void |
notifyObservers()
如果 hasChanged 方法指示物件已改變,則通知其所有觀察者,並調用 clearChanged 方法來指示此物件不再改變。 |
void |
notifyObservers(Object arg)
如果 hasChanged 方法指示物件已改變,則通知其所有觀察者,並調用 clearChanged 方法來指示此物件不再改變。 |
protected void |
setChanged()
標記此 Observable 物件為已改變的物件;現在 hasChanged 方法將返回 true。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public Observable()
方法詳細資訊 |
---|
public void addObserver(Observer o)
o
- 要添加的觀察者。
NullPointerException
- 如果參數 o 為 null。public void deleteObserver(Observer o)
null
將使其無效。
o
- 要刪除的觀察者。public void notifyObservers()
hasChanged
方法指示物件已改變,則通知其所有觀察者,並調用 clearChanged
方法來指示此物件不再改變。
每個觀察者都有其 update
方法,其調用參數有兩個:observable 物件和 null
。換句話說,此方法等效於:
notifyObservers(null)
clearChanged()
,
hasChanged()
,
Observer.update(java.util.Observable, java.lang.Object)
public void notifyObservers(Object arg)
hasChanged
方法指示物件已改變,則通知其所有觀察者,並調用 clearChanged
方法來指示此物件不再改變。
每個觀察者都有其 update
方法,其調用參數有兩個:observable 物件和 arg
參數。
arg
- 任意物件。clearChanged()
,
hasChanged()
,
Observer.update(java.util.Observable, java.lang.Object)
public void deleteObservers()
protected void setChanged()
protected void clearChanged()
notifyObservers
方法自動調用此方法。
notifyObservers()
,
notifyObservers(java.lang.Object)
public boolean hasChanged()
setChanged
方法,而不是 clearChanged
方法時,才返回 true
;否則返回 false
。clearChanged()
,
setChanged()
public int countObservers()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。