Некоторые операционные системы генерируют события keyPressed быстрее, чем мое приложение может их обработать. Моей первой мыслью было не выполнять действие, если вызовы расположены слишком близко друг к другу, например:
public void actionPerformed(ActionEvent e) {
long now = System.currentTimeMillis();
if(now - lastCall < 150) {
System.out.println("dropping event");
}
else {
lastCall = now;
}
}
К сожалению, несмотря на удаление событий, приложение все еще блокируется и создает тонны событий в очереди. Есть ли способ, которым я могу отбросить события на более низком уровне? Я думаю, что к тому времени, когда они дойдут до моего слушателя действий, уже слишком поздно, чтобы спасти приложение от блокировки.
Спасибо за вашу помощь!
РЕДАКТИРОВАТЬ: я должен также упомянуть, что слушатель является частью AbstractAction, который связан с элементом меню.