2012-11-25 28 views
0

我對JavaFX中ListChangeListener.Change中的術語感到困惑。我有一個可觀察的名單,名單上名爲set(index,newValue)由JavaFX ListChangeListener.Change困惑

在出現的變化我觀察到以下變化屬性:

wasRemoved() == true 
wasReplaced() == false 
wasUpdated() == false 

值得慶幸的是,getAddedSublist()包含的新的價值,但我本來期望wasReplaced或wasUpdated是真實的。

這兩個字段會是什麼樣的變化?

+1

你確定嗎?我剛剛嘗試過,並在wasReplaced上獲得了「真實」。我不知道會設置wasUpdated爲'true'。 – ftkg

回答

1

我自己的愚蠢的錯誤。我從Javadocs複製了這個例子,並添加了其他幾個塊,例如塊。

if(change.wasAdded()) { 
    //doAdd 
} else if (change.wasRemoved()) { 
    //doRemove 
} else if (change.wasReplaced()) { 
    //doReplace 
} 

doReplace()永遠不會被調用,因爲它是一個else if和not if。感謝@ ftkg的建議讓我在這裏。