我必须在 Java 框架(来自 Java 应用程序)上重新设置 X-Window(来自 C++ 应用程序)。这个 X-Window 必须插入到 Java 组件树中,这样 z-Order 才会得到尊重。为此,我需要了解:
- 首先,Java 应用程序创建的组件树与匹配的 X-Window 树之间的确切关系。
- 其次,由于reparent,我是否可以在Java树上插入X-Window以及在何处插入。
- 第三,处理窗口/组件堆栈的方式:哪个窗口/组件将在另一个之上。
几周的研究......但我没有找到关于这些问题的任何资源......
关于问题 1。据我了解,如果我创建一个带有组件和其他两个框架的 java 主框架,则 Swing 树应该如下所示:
Frame0
:
:-------------------------------
: : :
Component Frame1 Frame2
:
Component-----------Component
关于 X-Window 树:每个 Frame 都是一个重量级组件,因此每个 Frame 都有一个 X-Window ID。所以 X-Window 树可能看起来像这样:
Frame0
:
Frame1---------Frame2
关于问题 2。我的问题是:如果我在 Swing 树的中间插入一个 Applet(所以是一个重量级组件)以及其他组件会发生什么?X 窗口会是什么样子?我希望通过这种方式,我可以在 Java 应用程序上重新创建一个 X-Window,并且这个 X-Window 将被插入到 Java 树中。
关于问题 3。即使我可以将 X-Window 重新设置为 / 插入到 Java 应用程序中,我也不确定是否会尊重 z 顺序。事实上,我做了一个试验,X-Window 已经出现在 Java Frame 的所有组件之上。我不确定了解窗口/组件堆栈的处理方式及其与 java 和 X-Window 树的关系。