Окно 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

Другие вопросы по тегам