我目前正在为一所大学开展一个研究项目,其中我正在与数据库进行 GUI 交互,并根据数据启动外部程序。我正在使用运行时命令(一旦检测到操作系统)来启动具有所选数据的外部程序。
我的问题是如何将外部程序的 GUI 嵌入到 Java 框架中(如果这是远程可能的话)?
我正在尝试在 JPanel 中嵌入 HWND(窗口句柄)。
实际上,我可以将我的 HWND 嵌入到 JFrame 中,但是嵌入的窗口始终位于其他组件的顶部,我无法移动它。如果尝试删除我的 JFrame 的所有子组件,HWND 会留在那里。HWND 似乎是在 JFrame 之上绘制的,而不是其中之一。
要将 HWND 嵌入 JPanel,我通过 jna 使用 User32:
User32.SetParent(iage.getRenderHwnd(), (int) getGUIHwnd(j));
Run Code Online (Sandbox Code Playgroud)
我用它来获取我的 JFrame 的 HWND:
j.getPeer() != null ? ((WComponentPeer) j.getPeer()).getHWnd(): 0;
Run Code Online (Sandbox Code Playgroud)
有没有办法将 HWND 嵌入 JPanel 或将其添加到其他组件中,以便我可以像在 UI 中一样放置它?
谢谢