添加事件侦听器
Preferences 对象发出两种类型的事件 : PreferenceChangeEvent 和 NodeChangeEvent 。
PreferenceChangeEvent
每当节点的一个键值对发生变化时,PreferenceChangeEvent 就会被 Properties 对象发出。PreferenceChangeEvents 可听了一个 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();
}
});