How can a JavaFX 8 controller tell whether a `Shift`, `Ctrl`, `Alt` or `Enter` key is located on the left or right part of the keyboard?

The `getKeyLocation()` method in `java.awt.event.KeyEvent` doesn't exist for the `javafx.scene.input.KeyEvent` class unfortunately.

I also tried to check the `event.location` in a Javascript by intercepting `window.onkeydown`, but unlike V8 or other JS engines, it seems the Nashorn library doesn't discriminate them and returns `DOM_KEY_LOCATION_STANDARD` no matter where the key is located.

Since the overall key capture seems pretty much broken (inconsistencies in `KeyEvent::getCode`/`keyText` methods), I'm starting to think an external library will be necessary. Is there a solution in the JavaFX (or Java) library, and if not, a lightweight library that could offer the same functionality on different platforms (Windows, Linux and Mac OS)?

Thanks in advance!

**Update**

Tried with JavaFX + awt component (see [suggestion below](https://stackoverflow.com/a/25596675/183575)), but wouldn't work as it seems JavaFX provides and translates the events - incorrectly.

Tried with [JNativeHook](https://code.google.com/p/jnativehook/) (they [recently moved](https://github.com/kwhat/jnativehook)), it *almost* qualifies as a work-around but fails to recognize some keys, has imprecise timing and is a bit awkward to implement, especially since I can't compile the native code for all the platforms. The licencing terms are also a bit confused (GPL for the stable version, which isn't an option in my case, perhaps moving to LGPL...).