关于事件监听机制的问题。求大神。
假设我有一个监听器监听到了一个事件。
监听到了,就需要调用相应的方法来处理。
如果处理的过程中,诱发的别的事件。那么会怎么样呢?
是直接去处理新的事件还是,处理完现在的事件之后再去处理新的事件。
令我纠结的是,竟然两种情况都出现了。
代码如下:
package jiakai;
import javax.servlet.*;
import javax.servlet.http.*;
public class JDTest implements HttpSessionAttributeListener{
public void attributeAdded(HttpSessionBindingEvent se) {
String name = se.getName();
HttpSession session = se.getSession();
session.removeAttribute(name);
System.out.println("ADD");
}
public void attributeRemoved(HttpSessionBindingEvent se) {
System.out.println("SUB");
}
public void attributeReplaced(HttpSessionBindingEvent se) {
}
}
这个是web里面添加的Listener
我在一个Servlet中添加了一个属性。
测试结果是这样的。
SUB
ADD
说明。他先去处理了新的事件。然后回来执行刚才的事件。
还有一个测试
class MT implements TextListener , ActionListener{
public void textValueChanged(TextEvent e) {
System.out.println("VC");
}
public void actionPerformed(ActionEvent e) {
tf.setText("ttttttt");
System.out.println("P");
System.out.println("haha");
}
}
在这个监听中。如果我敲击一个回车结果却使这样的。
P
haha
VC
这说明这个个是先处理完当前的事件再去执行新的事件。
我自己猜测这可能是事件拥有优先级的原因。
有没有大神,研究过这个啊。
求解释。
求大神。
------解决方案--------------------
我下班了,明天帮你看