Окно X11 на JFrame или JPanel?
Чтобы встроить приложение C/C++ X11 в другое приложение Java, возможно ли переопределить виджет верхнего уровня X11 в:
- JFrame или JWindow (перехватывает идентификаторы окон X11 их пиров X11 с помощью пакета sun.awt.x11)?
- или JPanel?
Я бы предпочел reparent с помощью JPanel, но я не уверен, что это возможно.
1 ответ
Я искал и нашел:
Рекурсивная функция, которая будет искать (начиная с корневого окна) окно с нужным именем
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