I am the author of JIntellitype and I can tell you for a fact this must be done natively in DLL and called from Java JNI just like JIntellitype does it. This is an OS level hook that is not implemented in the JDK so libraries like JIntellitype and jxGrabKey must be used. As far as I know no one has written one for OSX yet.
JIntellitype is open source on Github, so if you want an idea of how it works just check out the source code
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…