You don’t have write any C/JNI code. From Java:
import sun.awt.windows.WComponentPeer;
public static long getHWnd(Frame f) {
return f.getPeer() != null ? ((WComponentPeer) f.getPeer()).getHWnd() : 0;
}
Caveats:
- This uses a sun.* package. Obviously this is not public API. But it is unlikely to change (and I think less likely to break than the solutions above).
- This will compile and run on Windows only. You would need to turn this into reflection code for this to be portable.