我目前正在尝试将代码从C#移植到java。在C#代码中,panel.handle部分返回当前面板的intptr。然后将intptr传递给DLL方法。 C#代码如下:
IntPtr Handle = Panel1.Handle;
必须使用相同的DLL。我找到了使用Win32和JNI的东西,但我还没有理解如何使用它。有没有人知道java swing相当于这个方法?
答案 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机器,因为只有窗口的概念,所有内容都是一个窗口,每个窗口都有一个句柄。