I was taking a look at the StandardKeyboard and DirectInputKeyboard classes and noticed that there is an issue that has been overlooked in the APIs design. The keyboard classes poll the keyboard using:
public boolean poll()
This retrieves the CURRENT state of a device at the time its polled. This means that events can actually be missed which is wrong. isKeyPressed is fine because it will return whether or not a key is currently pressed, but there needs to be another method for getting the latest key value from an input queue.
I’ve coded the current OSX keyboard implementation so that it can do both, but until I have a method in the API that will allow you to get queued input I have no way of exposing that functionality.