新增事件偵聽器

Preferences 物件發出兩種型別的事件 : PreferenceChangeEventNodeChangeEvent

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();
    }
});