在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。