新增事件偵聽器
Preferences
物件發出兩種型別的事件 : PreferenceChangeEvent
和 NodeChangeEvent
。
PreferenceChangeEvent
每當節點的一個鍵值對發生變化時,PreferenceChangeEvent
就會被 Properties
物件發出。PreferenceChangeEvent
s 可聽了一個 PreferenceChangeListener
:
Version >= Java SE 8
preferences.addPreferenceChangeListener(evt -> {
String newValue = evt.getNewValue();
String changedPreferenceKey = evt.getKey();
Preferences changedNode = evt.getNode();
});
Version < Java SE 8
preferences.addPreferenceChangeListener(new PreferenceChangeListener() {
@Override
public void preferenceChange(PreferenceChangeEvent evt) {
String newValue = evt.getNewValue();
String changedPreferenceKey = evt.getKey();
Preferences changedNode = evt.getNode();
}
});
此偵聽器不會偵聽已更改的子節點鍵值對。
NodeChangeEvent
只要新增或刪除了 Properties
節點的子節點,就會觸發此事件。
preferences.addNodeChangeListener(new NodeChangeListener() {
@Override
public void childAdded(NodeChangeEvent evt) {
Preferences addedChild = evt.getChild();
Preferences parentOfAddedChild = evt.getParent();
}
@Override
public void childRemoved(NodeChangeEvent evt) {
Preferences removedChild = evt.getChild();
Preferences parentOfRemovedChild = evt.getParent();
}
});