添加事件侦听器
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();
}
});