[英]Waiting between event listeners java
我的问题:
我有两个附加到JLabel的事件侦听器和一个变量A
boolean A = false;
public void mouseEntered(MouseEvent evt) { ... }
public void mouseExited(MouseEvent evt) { ... }
我要执行的操作如下:触发mouseExited时,由于在mouseEntered事件侦听器中添加了一些代码,因此需要等待X毫秒的时间才能捕获A变量中的某些更改(如果发生)。
我已经尝试过使用Timer,但无法正常工作->在等待期间,我无法捕获变量A的新值。 我只能在定时器用完后才能捕捉到它。
有什么想法可以实现吗?
我试过了
label.addMouseListener(new MouseAdapter() {
java.util.Timer t;
@Override
public void mouseEntered(MouseEvent evt) {
// Test Condition
if(condition) {
// do something
} else {
t.cancel();
t.purge();
}
}
@Override
public void mouseExited(MouseEvent e) {
t = new java.util.Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
// do something
t.cancel();
t.purge();
}
}, 1*1000);
}
事件步骤:
1)mouseExited被触发->等待1秒
2)在此期间,如果触发mouseEntered(mouseEntered中未验证条件),则它应结束预定任务,但会在线程“ AWT-EventQueue-0” java.lang.NullPointerException中抛出异常。
如果在这段时间内触发mouseEntered,如何结束此计划任务?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.