如何使监听器监听TreeMap中的更改?

idu*_*osn 1 java listeners treemap

我正在制作一个结合西班牙语动词的GUI.它利用TreeMap作为主要数据结构,其中充满了类Verb的实例化.每个实例化都包含一个字符串,其中包含动词的不定式形式,如"hablar"或"escribir".GUI中有一个功能,允许用户通过键入其不定式及其英文翻译来输入新的动词.

我想知道如何创建一个侦听器,每次从TreeMap添加或删除新动词时都会运行一些代码.我该怎么做呢?

ste*_*fan 5

您可以继承TreeMap类,例如.

public class MyTreeMap<K, V> extends TreeMap<K, V> {
    @Override
    public V put(K key, V val) {
        V ret = super.put(key, val);
        myAddCallback(key, val);
        return ret;
    }

    @Override
    public V remove(K key) {
        V ret = super.remove(key);
        myRemoveCallback(key);
        return ret;
    }
}
Run Code Online (Sandbox Code Playgroud)

另一个(显着更多参与)选项是检查AspectJ,一个基于AOP的JRE.