2011-01-26 138 views
3

我正试图在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或添加到其他组件,所以我可以像我在我的用户界面一样定位它?

感谢

回答

3

JPanels是lightweighted部件(他们有没有真正的本土同行)。即它们已经使用(J)框架的手柄。看看java.awt.Canvas。

+0

非常感谢您,我可以在画布上连接我的HWND,并将其添加到JPanel。 – Etienne 2011-01-27 14:17:02