2017-04-11 15 views
0

현재 C#에서 java로 코드를 포팅하려고합니다. C# 코드에서 panel.handle 부분은 현재 패널의 intptr을 반환합니다. 그런 다음 intptr은 DLL 메서드로 전달됩니다. C# 코드는 다음과 같습니다.C# 핸들 포인터에 해당하는 JFrame

IntPtr Handle = Panel1.Handle;

동일한 DLL을 사용해야합니다. Win32 및 JNI를 사용하여 무언가를 찾았지만 사용법을 이해하지 못했습니다. 누구든지이 방법에 해당하는 자바 스윙을 알고 있습니까?

+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); 
     } 
    } 

은 창문이 모든 것의 개념은 창이며, 모든 윈도우가 핸들이 갖고 있기 때문에 이것은 단지 윈도우 기계를 작동 참고 : 여기에 내가 같은 문제에 직면하고있다 사람에게 한 일이다.