Вставить HWND (дескриптор окна) в JPanel - PullRequest
3 голосов
/ 26 января 2011

Я пытаюсь вставить HWND (дескриптор окна) в JPanel.

На самом деле я могу встроить HWND в JFrame, но встроенное окно всегда остается поверх другого компонента, и я не могу его переместить. Если попытаться удалить все дочерние компоненты моего JFrame, HWND останется там. HWND, кажется, рисует поверх JFrame, а не как ребенок.

Чтобы встроить HWND в JPanel, я использую User32 через jna:

User32.SetParent(iage.getRenderHwnd(), (int) getGUIHwnd(j));

И я использую это, чтобы получить HWND моего JFrame:

j.getPeer() != null ? ((WComponentPeer) j.getPeer()).getHWnd(): 0;

Есть ли способ встроить HWND в JPanel или добавить его в другой компонент, чтобы я мог расположить его так, как я хочу, в своем пользовательском интерфейсе?

Спасибо

1 Ответ

3 голосов
/ 27 января 2011

JPanels - это легковесные компоненты (у них нет реального нативного партнера). то есть они уже используют ручку (J) Frame. Посмотрите на java.awt.Canvas.

...