为了将 C/C++ X11 应用程序嵌入到另一个 Java 应用程序中,是否可以在以下位置重新设置 X11 顶级小部件:
- 一个 JFrame 或一个 JWindow(使用包 sun.awt.x11 捕获其 X11 对等方的 X11 窗口 ID)?
- 还是JPanel?
我更喜欢用 JPanel 重新父母,但我不确定这是否可能。
为了将 C/C++ X11 应用程序嵌入到另一个 Java 应用程序中,是否可以在以下位置重新设置 X11 顶级小部件:
我更喜欢用 JPanel 重新父母,但我不确定这是否可能。
我搜索并发现:
一个递归函数,它将搜索(从根窗口开始)具有所需名称的窗口
Window windowWithName(Display *dpy, Window top, char *name)
{
Window *children, dummy;
unsigned int nchildren;
unsigned int i;
Window w = 0;
char *window_name;
if (XFetchName(dpy, top, &window_name) && !strcmp(window_name, name))
return (top);
if (!XQueryTree(dpy, top, &dummy, &dummy, &children, &nchildren))
return (0);
for (i = 0; i < nchildren; i++)
{
w = windowWithName(dpy, children[i], name);
if (w)
break;
}
if (children)
XFree((char *) children);
return (w);
}
您可以随时打开一个java.net.Socket
到6000左右的端口并X11
自己说话。
可能有帮助的代码
参考,希望对您有所帮助注意
:包不再sun.awt.x11
存在jdk7