2017-04-11 14 views
0

私は現在、C#からjavaにコードを移植しようとしています。 C#コードでは、panel.handle部分は現在のパネルのintptrを返します。その後、intptrはDLLメソッドに渡されます。 C#コードは次のとおりです。C#のハンドルに相当するJFrame

IntPtr Handle = Panel1.Handle;

同じDLLを使用する必要があります。私はWin32とJNIを使​​用して何かを見つけましたが、私はそれをどのように使用するかを理解していません。誰もがこのメソッドに相当するJavaのスイングを知っていますか?

+0

[this](https://github.com/java-native-access/jna/blob/master/contrib/platform/test/com/sun/jna/platform/win32/)をご覧ください。 WindowUtilsTest.java)を参照してください – MadProgrammer

+0

リンクをありがとうございます。これは私に解決策を見つけるのを助けました。 –

答えて

0

コメントのリンクと他のいくつかの研究のおかげで、私はC#のHandleプロパティに相当するものを見つけることができました。

import javax.swing.*; 

    import com.sun.jna.Native; 
    import com.sun.jna.Pointer; 
    import com.sun.jna.platform.win32.WinDef.HWND; 

    public class main { 
     public static void main(String[] args) { 
      JFrame jFrame = new JFrame(); 
      final HWND hwnd = new HWND(Native.getComponentPointer(jFrame)); 
      System.out.println(hwnd); 
     } 
    } 

のみ窓がすべての概念は窓であり、すべてのウィンドウには、ハンドルを持っている持っているので、これはWindowsマシンのみで動作することに注意してください:ここでは、私は同じ問題に直面している誰にでもやっていることです。