Есть много способов, и CountDownLatch является одним из них. Еще один способ использовать семафор, который можно использовать повторно.
private Semaphore semaphore = Semaphore(0);
public void actionPerformed(ActionEvent evt) {
semaphore.release();
}
public void method() {
System.out.println("stuff is happening");
semaphore.acquire();
System.out.println("You pressed enter!");
}
Также вы должны подумать о последовательности происходящего. Если пользователь нажимает, введите более одного раза, если это будет учитываться более одного раза. А также, если возможно событие события после того, как метод ожидания получит его. Вы можете сделать следующее:
private Semaphore semaphore = Semaphore(0);
public void actionPerformed(ActionEvent evt) {
if ( semaphore.availablePermits() == 0 ) // only count one event
semaphore.release();
}
public void method() {
semaphore.drainPermits(); // reset the semaphore
// this stuff possibly enables some control that will enable the event to occur
System.out.println("stuff is happening");
semaphore.acquire();
System.out.println("You pressed enter!");
}