当前位置: 首页 > 面试题库 >

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

暴才俊
2023-03-14
问题内容

我正在尝试在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或将其添加到其他组件中,这样就可以像在用户界面中一样定位它了?

谢谢


问题答案:

JPanels是轻量级的组件(它们没有真正的本机对等体)。也就是说,它们已经使用(J)Frame的句柄。看一下java.awt.Canvas。



 类似资料:
  • 问题内容: 在Java 1.4中,您可以使用(((SunToolkit)Toolkit.getDefaultToolkit())。getNativeWindowHandleFromComponent(),但这已被删除。 看来您现在必须使用JNI来执行此操作。您是否有JNI代码和示例Java代码来执行此操作? 我需要它来调用Win32 GetWindowLong和SetWindowLong API调

  • 问题内容: 我们正在Windows中构建JavaFX应用程序,我们希望能够做一些事情来操纵我们的应用程序在Windows 7/8任务栏中的显示方式。这需要修改Windows变量,称为“ 应用程序用户模型ID ”。 我们已经通过使用JNA设法完全完成了我们在Swing中想要的工作,并且我们想在JavaFX中重复我们的解决方案。不幸的是,要做到这一点,我们需要能够为应用程序中的每个窗口检索(窗口句柄)

  • 问题内容: 我正在开发python应用程序,我想获取每个打开的窗口。我需要窗口的名称和来过滤列表,以管理一些特定的窗口,移动它们并调整其大小。 我试图自己查看信息,但没有获得正确的代码。我尝试使用此代码,但仅获得每个窗口的标题(很棒),但我也需要。 这里有一个错误: 问题答案: 你混了和。 在你所得到的是通过获得,是一个对象。这就是为什么不接受它。你应该把它传给 如果要使用,则可以直接使用pyth

  • 问题内容: 我有一个应用程序,允许用户选择一个选项,并根据用户选择从组件中删除一个JPanel,添加新的JPanel并重新验证该组件 看到代码: c是一个组件 我有几个JPanels,用户可以在它们之间切换,并且开关可以正常工作。但是,当我根据用户选择添加此JPanel时,以后添加的JPanels无法正确加载。是什么原因造成的? } 问题答案: 更好的方法是转向CardLayout。但是如果您想坚

  • 我在做一个三维模型的生成设计项目。我需要创建一个简单的QT应用程序,允许用户使用VTK查看网格,并包括一些按钮反馈到生成算法。 GUI对我来说是一个全新的东西,所以我很难从这里为查看者集成代码到更广泛的程序中。现在,我只是试图在查看器中创建一个按钮和一个3D圆锥体。 到目前为止,我的代码在运行时崩溃。它使用给定链接中的QVTKRenderWindowInteractor()对象,该对象直接粘贴到文

  • 问题内容: 我正在编写一个需要文件打开对话框的Java程序。文件打开对话框并不难,我希望使用。我的问题是我想要一个双窗格(由2组成)。左侧面板上有一个,右侧面板上有一个文件打开对话框。 当我使用它时,将在所有其他窗口上方打开对话框,这不是我想要的。有什么方法可以使(或可能是另一个文件选择对话框)显示在而不在其上方弹出? 这是我尝试过的代码,目前已非常简化。目前,我只是试图将嵌入。 我也打过电话与和