日期:2014-05-20  浏览次数:20645 次

事件机制一点疑问,希望解答
JAVA里面的事件机制:
界面ScreenA上有一个buttonA(事件源),我设置监听者listener,监听button,当我按下buttonA的时候跳转到界面ScreenB,
当按键下button,我调用listener监听者的方法去处理。
问题1:listener是自己处理这个事件还是在把这个事件传给系统去处理?
问题2:如果是listener自己去处理,但是它怎样知道ScreenB这个对象呢?
问题3:界面ScreenA上还有其他的控件,比如文本框,下拉框,菜单,等等.我是不是要为每一个可能触发事件的对象都设置一个监听者呢?每一个监听者都只处理一件事?

------解决方案--------------------
1
listener调用自己的方法处理(也就是自己处理)

2
那就看你怎么管理你的每个Screen的,ScreenA要调用ScreenB,可以在ScreenA用一个变量引用ScreenB,操作那个变量就可以了

3
监听者可以独立,也可以是同一个,比如你的ScreenA impelments 监听器1, 监听器2...
那么你的ScreenA可以用同一个监听器ScreenA,即xxx.addxxxListener(this);这样的话要在事件处理的地方判断事件源来分别处理