C# 句柄指针的 JFrame 等效项

Posted

技术标签:

【中文标题】C# 句柄指针的 JFrame 等效项【英文标题】:JFrame equivalent for C# handle pointer 【发布时间】:2017-04-11 08:17:38 【问题描述】:

我目前正在尝试将代码从 C# 移植到 java。在 C# 代码中,panel.handle 部分返回当前面板的 intptr。然后将 intptr 传递给 DLL 方法。 C#代码如下:

IntPtr Handle = Panel1.Handle;

必须使用相同的 DLL。我发现了一些使用 Win32 和 JNI 的东西,但我不明白如何使用它。有谁知道相当于这个方法的java swing?

【问题讨论】:

也许你应该看看this 作为参考 感谢您的链接。这对我找到解决方案很有帮助。 【参考方案1】:

感谢评论中的链接和其他一些研究,我设法找到了与 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 机器,因为只有 windows 才有一切都是窗口的概念,每个窗口都有一个句柄。

【讨论】:

以上是关于C# 句柄指针的 JFrame 等效项的主要内容,如果未能解决你的问题,请参考以下文章

使用窗口句柄作为 VB6 窗体的所有者

句柄与指针的区别

句柄和指针

c# 设置窗体句柄

c# 在知道数据窗口的句柄的时候如何获得数据窗口的数据

c#获取窗口句柄后 如何遍历所有控件