What happens is that the javah command converts the java source code to native code entry points. This command was provided for interfacing mainly for C/C++ but if you wish to use other languages then you will have to do your own translation of entry points and arguments thus creating your own version of javah for say pascal which is not recommended.
As for recommending about the internal implementation of jni in the jvm, i am not too sure about that and thus am unable to recommend articles about it
The link to the javaworld article especially on the second and third page talks more about the internal working between the jni and jvm.
For Each ctrl As Control In Me.Controls("pnlMainPanel").Controls
If ctrl.GetType Is GetType(System.Windows.Forms.Panel) Then
For Each subCtrl As Control In ctrl.Controls
If subCtrl.GetType Is GetType(System.Windows.Forms.TextBox) Then
If subCtrl.GetType Is ...