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

标签 java awt hwnd

我正在尝试在 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 中一样定位它?

谢谢

最佳答案

JPanels 是轻量级组件(它们没有真正的原生组件)。即他们已经使用了 (J)Frame 的句柄。看看 java.awt.Canvas。

关于java - 在 JPanel 中嵌入 HWND(窗口句柄),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4809713/

相关文章:

java - java中解析xml字符串

java - JSF 中使用漂亮的欢迎页面

Java awt SystemTray - Surface 4 Pro 上的 Popmenu 太小

java - 如何使用 SWT AWT 处理 Windows 按键,最小化窗口并返回桌面

c - 如何确定当前进程中 COM 使用的内部 HWND?

c++ - 是否可以在 MessageBox() 中显示 HWND->i?

c++ - 获取外部运行的可见窗口c++的句柄

java - 从客户端传输到服务器时字符串被截断 - Java

java - 从java中的c++/c#程序读取共享内存

java - Swing 组件是如何在内部创建、布局、重绘、通知事件的,...?