Hola,
Posiblemente podrías tomar el tiempo actual del tiempo en milisegundos y compararlo con un valor que tienes almacenado del último evento registrado, si no es así entonces consumirlo.
Código Java:
Ver originalif (d.getTime() < timer + 3000) {
e.consume();
} else {
timer = d.getTime();
}
Saludos,