我正在尝试在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中一样定位它?
由于
答案 0 :(得分:3)
JPanels是轻量级组件(它们没有真正的本地对等体)。即它们已经使用了(J)框架的手柄。看看java.awt.Canvas。