Хранить массив кодов кнопок из keyPressed и константу currentTimeMillis последнего нажатия, предполагаю. При каждом вызове keyPressed искать совпадения последнего кода первого массива с текущим кодом кнопки и, попутно, разность между текущим временем и константой прошлого нажатия.
Хотя, можно массив вообще не использовать — это я загнул из своей практики.