为了将C/C++X11应用程序嵌入到另一个Java应用程序中,是否可以在中修复X11顶级小部件
- JFrame或JWindow(使用sun.awt.X11包捕获X11对等端的X11窗口ID)
- 还是JPanel
我更喜欢用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
中不再