java – 在JPanel中嵌入HWND(窗口句柄)

我试图在JPanel中嵌入一个HWND(窗口句柄).

实际上,我可以将我的HWND嵌入到JFrame中,但嵌入式窗口总是停留在另一个组件的顶部,我无法移动它.如果尝试删除我的JFrame的所有子组件,HWND会保留在那里. HWND似乎是在JFrame之上绘制而不是作为孩子之一.

要将HWND嵌入到JPanel中,我使用User32到jna:

User32.SetParent(iage.getRenderHwnd(), (int) getGUIHwnd(j));

我使用它来获取我的JFrame的HWND:

j.getPeer() != null ? ((WComponentPeer) j.getPeer()).getHWnd(): 0;

有没有办法将HWND嵌入到JPanel中或将其添加到其他组件中,以便我可以将其放置在我的UI中?

谢谢

最佳答案
JPanels是轻量级组件(它们没有真正的本地对等体).即它们已经使用了(J)框架的手柄.看看java.awt.Canvas.

转载注明原文:java – 在JPanel中嵌入HWND(窗口句柄) - 代码日志