4

我正在尝试在 JPanel 中嵌入 HWND(窗口句柄)。

实际上,我可以将我的 HWND 嵌入到 JFrame 中,但是嵌入的窗口始终位于其他组件的顶部,并且我无法移动它。如果尝试删除我的 JFrame 的所有子组件,则 HWND 会留在那里。HWND 似乎是在 JFrame 之上绘制的,而不是作为子对象之一。

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

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

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

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

有没有办法将 HWND 嵌入到 JPanel 中或将其添加到其他组件中,以便我可以像在 UI 中一样定位它?

谢谢

4

1 回答 1

6

JPanel 是轻量级组件(它们没有真正的本地对等点)。即他们已经使用了(J)Frame 的句柄。查看 java.awt.Canvas。

于 2011-01-27T01:09:53.077 回答