为了将一个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
进行通信。这里有一些可能有所帮助的 代码。
参考,希望这能帮到您。注意:jdk7
中没有sun.awt.x11
包。