Swing uses AWT as it's drawing backend, which is basically what copeg described: it uses native code to draw basic components and stuff. It has been implemented on a large number of platforms because it had quite a large corporate backing (Sun Microsystems, now Oracle and the Java open-source community).
There is another native backend which I believe IBM wrote called SWT. I've never used it, but it's what Eclipse uses for drawing GUI's.
Anything lower-level will require you to write the native backend yourself using JNI (keep in mind that the native backend has to be written/compiled on every platform you want to support).