Hi: This[1] defect is only partially fixed on Mac OS X.
The problems with the proposed solution were brought up in another ticket[2]. Victor Dyakov asked if the problem was reproducible on versions 8 and 9. I can confirm. I installed both jdk1.7.0_80-ea, jdk1.8.0_60-ea, and jdk1.9.0_ea and ran the code attached to [1]. When running the Frame1 code from [1], the alphabetic keys in Dvorak (home row, for example) are unambiguously registered as such. However, Dvorak's symbol keys, like ' (QWERTY Q), / (QWERTY [), or ; (QWERTY Z), are still partially registering as QWERTY keys. It seems that keyEvent.getKeyChar() is correct String.valueOf((char)keyEvent.getKeyCode()) is NOT correct KeyEvent.getKeyText(keyEvent.getKeyCode()) is NOT correct for Dvorak symbols. If you happen to have IntelliJ IDEA 14 installed (other versions may work), you can see the problem by opening the Preferences->Keymap window and clicking the "Find Actions by Shortcut" button. With Dvorak enabled, searching for a Shortcut like ^/ is impossible since the registered shortcut will be ^[, the analogous QWERTY shortcut. [1] https://bugs.openjdk.java.net/browse/JDK-8028617 [2] https://bugs.openjdk.java.net/browse/JDK-8066068