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

时间:2011-01-26 20:31:54

标签: java awt 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中一样定位它?

由于

1 个答案:

答案 0 :(得分:3)

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